Funciones Internas Python
Funciones Internas Python
Funciones Internas Python
3 Funciones internas
import string
def my_import(name):
mod = __import__(name)
components = string.split(name, '.')
for comp in components[1:]:
mod = getattr(mod, comp)
return mod
abs (x)
Devuelve el valor absoluto de un número. El argumento puede ser un
entero normal o largo o un número de coma flotante. Si el argumento es un
número complejo, se devuelve su módulo.
apply (function, args[, keywords])
El argumento function debe ser un objeto invocable (una función o método
definido por el usuario o interna) y args una secuencia (si no es una tupla,
primero se convierte la secuencia a tupla). Se llama a la
función function con args como lista de argumentos. El número de
argumentos es la longitud de la tupla (se diferencia de llamar sin más
a func(args), pues en este caso siempre hay exactamente un argumento).
Si se proporciona el argumento opcional keywords, debe ser un diccionario
cuyas claves sean cadenas. Especifica argumentos clave a añadir al final
de la lista de argumentosd.
buffer (object[, offset[, size]])
EL argumento object debe ser un objeto con interfaz compatible con buffer
(cadenas, matrices y buffers). Se creará un nuevo objeto buffer referente
a object. El objeto buffer será un corte desde el principio de object (o desde
el desplazamiento inicial offset especificado). El corte se extenderá hasta el
final de object (o tendrá una longitud especificada por el argumento size).
callable (object)
Devuelve verdadero si el argumento object parece tener una interfaz de
llamadas (como las funciones y métodos) y falso en caso contrario. SI
devuelve verdadero, aún es posible que falle la llamada, pero si es falso, las
llamadas a object siempre serán infructuosas. Es importante ver que las
clases siempre tienen la interfaz de llamadas (y al llamarlas se obtiene una
nueva instancia). Las instancias de clases son llamables si cuentan con un
método __call__().
chr (i)
Devuelve una cadena de un carácter cuyo código ASCII es el entero i, es
decir, chr(97) devuelve la cadena 'a'. Es la inversa de la función ord(). El
argumento debe estar en el rango de 0 a 255, ambos incluidos. Se
lanza ValueError si i está fuera de dicho rango.
cmp (x, y)
Compara los objetos x y y y devuelve un entero acorde con la comparación.
El valor devuelto es negativo si x < y, cero si x == y y estrictamente positivo
si x > y.
coerce (x, y)
Devuelve una tupla de dos argumentos numéricos convertidos a un tipo
común, usando las mismas reglas que usan las operaciones aritméticas.
compile (string, filename, kind)
Compila la cadena string a un objeto código. Los objetos código pueden
ejecutarse con la sentencia exec evaluarse en una llamada a eval(). El
argumento filename debe proporcionar el fichero del que se leyó el código.
Pasar, por ejemplo, '<string>' si no se ha recuperado el código de ningún
fichero. El argumento kind especifica qué tipo de código se ha de compilar.
Puede ser 'exec' si string es una secuencia de sentencias, 'eval' si es una
sola expresión o 'single' si es una sola sentencia interactiva (en cuyo caso,
las sentencias-expresión que den como resultado algo diferente
de None mostrarán este resultado en pantalla).
complex (real[, imag])
Crea un número complejo con el valor real + imag*j o convierte una cadena
o número a complejo. Cada argumento puede ser de cualquier tipo
numérico (incluso complejo). imag toma un valor cero por omisión, y la
función sirve de función de conversión como int(), long() y float(); en tal
caso también acepta un argumento cadena, que debe representar un
número complejo válido.
delattr (object, name)
Esta función es pariente de setattr(). Los argumentos son un objeto y una
cadena. La cadena debe ser el nombre de uno de los atributos del objeto.
La función elimina dicho atributo, siempre que el objeto lo permita. Por
ejemplo, delattr(x, 'foobar') equivale a del x.foobar.
dir ([object])
Sin argumentos, devuelve la lista de nombres de la tabla de símbolos local
actual. Con argumento, intenta recuperar una lista de atributos válidos para
el objeto indicado. Esta información se infiere a partir de los
atributos __dict__, __methods__ y __members__ del objeto, de existir. Esta
lista no es necesariamente completa, pues para las clases, no se incluyen
los atributos de clases base, y en el caso de instancias de una clase, no se
incluyen los métodos. La lista resultante está en orden alfabético. Por
ejemplo:
>>> import sys
>>> dir()
['sys']
>>> dir(sys)
['argv', 'exit', 'modules', 'path', 'stderr', 'stdin', 'stdout']
divmod (a, b)
Toma como argumentos dos números y devuelve una pareja de números:
el primero es el cociente de los argumentos y el segundo su resto. Si los
operandos son de tipo mixto, se aplican las reglas de operadores binarios
aritméticos. En el caso de los enteros largos, el resultado equivale
a (a / b, a % b). En el caso de los números en coma flotante, el resultado
es (q, a % b), donde q suele ser math.floor(a / b), pero puede ser uno
menos. En cualquier caso, q * b + a % b se acerca mucho a a, si a % b no
es cero y tiene el mismo signo que b, and 0 <= abs(a % b) < abs(b).
eval (expression[, globals[, locals]])
Los argumentos son una cadena y dos diccionarios opcionales. El
argumento expression se analiza y evalúa como expresión de Python
(hablando técnicamente, una lista de condiciones) usando los
diccionarios globals y locals como espacio nominal global y local,
respectivamente. Si se omite el diccionario locals, toma por valor el
diccionario globals. Si se omiten los dos diccionarios, la expresión se evalúa
en el entorno en que se llama a eval. El valor devuelto es el resultado de la
expresión evaluada. Los errores de sintaxis se comunican como
excepciones. Por ejemplo:
>>> x = 1
>>> print eval('x+1')
2
filter (function, list)
Construye una lista a partir de los elementos de list para los cuales la
función function devuelve un valor verdadero. Si list es una cadena o una
tupla, el resultado tiene ese tipo también; en caso contrario es una lista.
Si function es None, se presupone la función identidad, por lo que se
eliminan todos los elementos falsos (cero, nulo o vacío) de list.
float (x)
Convierte una cadena o número a coma flotante. Si el argumento es una
cadena, debe contener una representación válida de un número en coma
flotante, con espacio en blanco alrededor opcionalmente. En este caso, se
comporta igual que string.atof(x). En caso contrario, el argumento puede ser
un entero normal o largo, y se devuelve un número de coma flotante del
mismo valor (dentro de la precisión de coma flotante de Python).
int (x[, radix])
Convierte una cadena o número a entero simple. Si el argumento es una
cadena, debe contener un número decimal con signo opcional
representable como entero de Python, con espacio alrededor opcional. Se
comporta de manera idéntica a string.atoi(x[, radix]) en este caso. El
parámetro radix proporciona la base para la conversión y puede ser
cualquier entero en el rango [2, 36]. Si se especifica radix y x no es una
cadena, se lanza TypeError. En otros casos, el argumento puede ser un
entero normal o largo, o un número en coma flotante. La conversión de los
números de coma flotante a enteros está definida por la biblioteca C 2.9.
intern (string)
Introduce string en la tabla de cadenas ``internas'' y devuelve la cadena
interna, que es la propia string o una cadena. Internar cadenas es útil para
ganar algo de rendimiento en el caso de búsquedas en diccionarios; si las
claves de un diccionario son internas y la clave buscada es interna también,
las búsquedas por clave (tras hallar el valor hash) se realizan por
comparación de punteros en lugar de comparación de cadenas.
Normalmente, los nombres utilizados en programas de Python se internan
automáticamente, así como las claves utilizadas para contener atributos de
módulo, clase o instancia. Las cadenas internas son inmortales (es decir,
nunca son recolectadas como basura).
isinstance (object, class)
Devuelve verdadero si el argumento object es una instancia del
argumento class o de una de sus subclases. También devuelve verdadero
si class es un objeto tipo y object es un objeto de este tipo. Si object no es
una instancia de clase u objeto del tipo indicados, devuelve falso.
Si class no es ni un objeto de una clase ni de un tipo, se lanza una
excepción TypeError.
issubclass (class1, class2)
Devuelve verdadero si class1 es una subclase (directa o indirecta)
de class2. Una clase se considera subclase de sí misma. Si alguno de los
dos argumentos no es un objeto clase, se lanza una excepción TypeError.
len (s)
Devuelve la longitud (el número de elementos) de un objeto. El argumento
puede ser una secuencia (cadena, tupla o lista) o una correspondencia
(diccionario).
list (sequence)
Devuelve una lista cuyos elementos son los mismos que los
de sequence en el mismo orden. Si sequence ya es una lista, se devuelve
una copia, de modo parecido a sequence[:]. Por
ejemplo, list('abc') devuelve ['a', 'b', 'c'] y list( (1, 2, 3) ) devuelve [1, 2, 3].
locals ()
Devuelve un diccionario que representa la tabla de símbolos local
actual. Advertencia: No debe modificarse el contenido de este diccionario.
Los cambios pueden no afectar a las variables locales del intérprete.
long (x)
Convierte una cadena o número a un entero largo. Si el argumento es una
cadena, debe contener un número decimal de cualquier tamaño de signo
opcional, con espacio alrededor opcional también. Se comporta de manera
idéntica a string.atol(x) en este modo. El argumento puede ser también un
entero normal o largo, o un número en coma flotante, para el que se
devuelve un entero largo del mismo valor. La conversión de los números de
coma flotante a enteros viene determinada por la librería de C, como se
veía en la descripción de int().
map (function, list, ...)
Aplica function a cada elemento de list y devuelve una lista con los
resultados. Si se pasan argumentos adicionales list, function debe tomar
tantos argumentos como listas haya y se aplica la función en paralelo sobre
todos los elementos de la misma posición de todas las listas argumento. Si
alguna de las listas es más corta que el resto, se tomará el valor
de None para los elementos que falten. Si function es None, se supone la
función identidad; si hay múltiples argumentos lista, map() devuelve una
lista de las tuplas de los elementos correspondientes de cada lista (lo que
supone una especie de transposición matricial). Los argumentos list pueden
ser cualquier tipo de secuencia; el resultado siempre es una lista.
max (s[, args...])
Con un solo argumento s, devuelve el mayor elemento de una secuencia no
vacía. Si hay más de una argumento, devuelve el mayor de los argumentos.
min (s[, args...])
Con un solo argumento s, devuelve el menor elemento de una secuencia no
vacía. Si hay más de una argumento, devuelve el menor de los argumentos.
oct (x)
Convierte un número entero (de cualquier tamaño) a una cadena octal. El
resultado es una expresión de Python válida. Nota: Siempre devuelve un
entero sin signo, por ejemplo, en una máquina de 32 bit, oct(-
1) devuelve '037777777777'. Si se evalúa en una máquina de la misma
longitud de palabra, este literal se evaluará como -1, si el tamaño de
palabra es diferente podría resultar un entero positivo grande o lanzar una
excepción OverflowError.
open (filename[, mode[, bufsize]])
Devuelve un nuevo objeto fichero (descrito anteriormento bajo Tipos
internos). Los primeros dos argumentos son los mismos que los de la
función C fopen() de la cabecera stdio: filename es el nombre del fichero a
abrir, mode indica cómo se ha de abrir el fichero: 'r' en sólo lectura, 'w' para
escritura (truncando el fichero si existe) y 'a' para agregar (lo que
en algunos sistemas Unix supone que todas las escrituras se agregan al
final del archivo, sin importar la posición actual del cursor de escritura.
Los modos 'r+', 'w+' y 'a+' abren el fichero para actualización (hay que
observar que 'w+' trunca el fichero). Se ha de añadir 'b' al modo para abrir el
fichero en modo binario, para los sistemas que diferencian los ficheros
binarios y de texto (si no, se hace caso omiso). Si no es posible abrir el
fichero, se lanza IOError.
ord (c)
Devuelve el valor ASCII de una cadena de un carácter o un carácter
Unicode. Por ejemplo, ord('a') devuelve el entero 97, ord(u'
u2020') devuelve 8224. Es la inversa de chr() para cadenas y la
de unichr() para caracteres Unicode.
pow (x, y[, z])
Devuelve x elevado a y; si se proporciona z, devuelve x elevado a y,
módulo z (calculado de manera más eficaz que pow(x, y) % z). Los
argumentos deben ser de tipo numérico. Si los tipos son mixtos, se aplican
las reglas de operadores binarios aritméticos habituales. El tipo de
operando efectivo coincide con el del resultado. Si el resultado no es
expresable en este tipo, se lanzará una excepción, por lo que, por ejemplo,
no está permitido pow(2, -1) ni pow(2, 35000).
range ([start,] stop[, step])
Ésta es una versátil función para crear listas que contengan progresiones
aritméticas. Su uso más popular es en los bucles for. Los argumentos
deben ser enteros normales. Si se omite el argumento step toma un valor
de 1. Si se omite el argumento start toma un valor de 0. La forma completa
devuelve una lista de enteros normales [start, start + step, start + 2
* step, ...]. Si step es positivo, el último elemento es el mayor
valor start + i * step menor que stop; si step es negativo, el último elemento
es el mayor valor start + i * step mayor que stop. step no debe ser cero (o
se lanza ValueError). Por ejemplo:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
raw_input ([prompt])
Si se proporciona el argumento prompt, se escribe en la salida estándar sin
salto de línea al final. La función lee una línea de la entrada, la convierte a
una cadena (eliminando el salto de línea final) y devuelve el resultado. Si se
lee EOF (el carácter de fin de fichero, Control-Z en Windows, Control-D en
Unix), se lanza EOFError. Ejemplos:
>>> s = raw_input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"
repr (object)
Devuelve una cadena que contiene un representación imprimible del objeto.
Es el mismo valor que devuelven las conversiones (comillas invertidas). A
veces es útil acceder a esta operación en forma de función normal. En
muchos tipos, esta función hace lo posible para devolver una cadena que
devolvería un objeto del mismo valor que el original al evaluarla con eval().
round (x[, n])
Devuelve el valor de coma flotantex redondeado a n dígitos tras la coma
decimal. Si se omite n toma el valor de cero. El resultado es un número de
coma flotante. Los valores se redondean al valor más cercano a 10 elevado
a menos n. Si hay dos múltiplos igual de cercanos, se redondea alejándose
de 0 (así que round(0.5) es 1.0 y round(-0.5) es -1.0).
setattr (object, name, value)
Es la función contraria a getattr(). Los argumentos son un objeto, una
cadena y un valor arbitrario. La cadena puede nombrar un atributo existente
o nuevo. La función asigna el valor al atributo, siempre que el objeto lo
permita. Por ejemplo, setattr(x, 'foobar', 123) equivale a x.foobar = 123.
slice ([start,] stop[, step])
Devuelve un corte que representa el conjunto de índices especificado
por range(start, stop, step). Los argumentos start y step toman el valor por
omisión de None. Los objetos corte tienen atributos de sólo
lectura start, stop y step que se limitan a devolver los valores de los
argumentos (o su valor por defecto). No tienen ninguna otra funcionalidad
explícita, pero son utilizados por Numerical Python (la extensión de cálculo
matricial) y otras extensiones de terceros. Los objetos corte resultan
también como producto de la sintaxis de corte extendida: "a[start:stop:step]"
o "a[start:stop, i]".
str (object)
Devuelve una cadena que contiene una representación imprimible de un
objeto. En el caso de cadenas, devuelve la propia cadena. La diferencia
con repr(object) es que str(object) no intenta devolver una cadena que
acepte eval(), su objetivo es devolver una cadena imprimible.
tuple (sequence)
Devuelve una tupla cuyos elementos son los mismos que los
de sequence en el mismo orden. Si sequence ya es una tupla, se devuelve
sin cambios. Por ejemplo, tuple('abc') devuelve ('a', 'b', 'c') y tuple([1, 2,
3]) devuelve (1, 2, 3).
type (object)
Devuelve el tipo de object. El resultado es un objeto tipo. El módulo
estándar types define nombres para todos los tipos internos. Por ejemplo:
>>> import types
>>> if type(x) == types.StringType: print "Es una cadena"
unichr (i)
Devuelve la cadena Unicode de una carácter cuyo código Unicode es el
entero i, es decir, unichr(97) devuelve la cadena u'a'. Es la función inversa
de ord() para cadenas Unicode. El argumento debe estar en el rango
[0..65535], ambos incluidos. En caso contrario, se lanza ValueError. Nuevo
en la versión 2.0.
unicode (string[, encoding[, errors]])
Descodifica string usando el codec de encoding. La gestión de errores se
lleva a cabo según errors. El comportamiento predeterminado es
descodificar UTF-8 en modo estricto, lo que significa que los errores de
codificación lanzan ValueError. Hay más información en el módulo codecs.
Nuevo en la versión 2.0.
vars ([object])
Sin argumentos, devuelve un diccionario correspondiente a la tabla de
símbolos local actual. Con un módulo, clase o instancia de clase como
argumento (o cualquier cosa que tenga un atributo __dict__ attribute),
devuelve un diccionario correspondiente a la tabla de símbolos del objeto.
El diccionario devuelto no debería modificarse, pues los efectos sobre la
tabla de símbolos no están definidos2.11.
xrange ([start,] stop[, step])
Esta función es muy similar a range(), pero devuelve un ``objeto xrange'' en
lugar de una lista. Es un tipo secuencia opaco que devuelve los mismos
valores que la correspondiente lista, sin almacenarlos simultáneamente. La
ventaja de xrange() sobre range() es mínima (pues xrange() todavía tiene
que crear los valores al pedísrselos) excepto en máquinas impedidas en
cuestión de memoria (por ejemplo, MS-DOS) o cuando nunca se utilizan
todos los elementos del rango (por ejemplo, porque se suele interrumpir la
ejecución del bucle con break).
zip (seq1, ...)
Esta función devuelve una lista de tuplas, donde cada tupla contiene el i-
ésimo elemento de cada una de las secuencias de argumento. Se requiere
al menos una secuencia, o se lanzará TypeError. La lista devuelta se trunca
a la longitud de la secuencia de argumento más corta. Cuando hay
múltiples secuencias de argumento de la misma longitud, zip() es similar
a map() con un argumento inicial de None. Con una sola secuencia como
argumento, devuelve una lista de tuplas de un solo elemento. Nuevo en la
versión 2.0.
Footnotes
... módulo2.8
Se usa poco, por lo que no acabó como sentencia.
... C2.9
Muy mal, la definición del lenguaje debería exigir el truncamiento hacia
cero.
... sistema2.10
Especificar un tamaño de tampón no tiene en la actualidad ningún efecto en
los sistemas que carecen de una función setvbuf(). La interfaz para
especificar el tamaño del tampón no se realiza mediante una llamada
a setvbuf(), porque podría causar una interrupción incontrolada del
programa si se llama tras realizar cualquier E/S y no hay un método fiable
de determinar si éste es el caso.
... definidos2.11
En la implementación actual, no es posible afectar a las variables locales de
este modo, aunque es posible alterar variables recuperadas de otros
ámbitos (por ejemplol, módulos). Esto puede cambiar.