El módulo operator exporta un conjunto de funciones implementadas en C
que se corresponden con los operadores intrínsecos de Python. Por ejemplo,
operator.add(x, y)
equivale a la expresión x+y
. Los nombres
de las funciones son los utilizados como métodos de clase especiales. Se proporcionan
con y sin "__" al principio y al final por facilidad.
El módulso operator define las siguientes funciones:
- add (a, b)
-
- __add__ (a, b)
-
Devuelve a
+
b, siendo a y b números.
- sub (a, b)
-
- __sub__ (a, b)
-
Devuelve a
-
b.
- mul (a, b)
-
- __mul__ (a, b)
-
Devuelve a
*
b, siendo a y b números.
- div (a, b)
-
- __div__ (a, b)
-
Devuelve a
/
b.
- mod (a, b)
-
- __mod__ (a, b)
-
Devuelve a
%
b.
- neg (o)
-
- __neg__ (o)
-
Devuelve o negado.
- pos (o)
-
- __pos__ (o)
-
Devuelve
+
o.
- abs (o)
-
- __abs__ (o)
-
Devuelve el valor absoluto de o.
- inv (o)
-
- __inv__ (o)
-
- __invert__ (o)
-
Devuelve el inverso de o. Los nombres invert() y
__invert__() fueron añadidos en Python 2.0.
- lshift (a, b)
-
- __lshift__ (a, b)
-
Devuelve a desplazado a la izquierda b bits.
- rshift (a, b)
-
- __rshift__ (a, b)
-
Devuelve a desplazado a la derecha b bits.
- and_ (a, b)
-
- __and__ (a, b)
-
Devuelve el Y lógico bit a bit de a y b.
- or_ (a, b)
-
- __or__ (a, b)
-
Devuelve el O lógico bit a bit de a y b.
- xor (a, b)
-
- __xor__ (a, b)
-
Devuelve el O exclusive lógico bit a bit de a y b.
- not_ (o)
-
- __not__ (o)
-
Devuelve el resultado de not o. No hay in método
__not__() para instancias de objeto, esta operación sólo está definida
por el núcleo del intérprete.
- truth (o)
-
Devuelve
1
si o es cierto ó 0 en caso contrario.
- concat (a, b)
-
- __concat__ (a, b)
-
Devuelve a
+
b, siendo a y b secuencias.
- repeat (a, b)
-
- __repeat__ (a, b)
-
Devuelve a
*
b, donde a es una secuencia y
b un entero.
- contains (a, b)
-
- __contains__ (a, b)
-
Devuelve el resultado de la comprobación b
in
a.
Obsérvese el orden de los operandos. El nombre __contains__() fue
añadido en Python 2.0.
- sequenceIncludes (...)
-
Obsoleto a partir de la versión 2.0.
Usar contains() en lugar de esto.
Alias de contains().
- countOf (a, b)
-
Devuelve las veces que aparece b en a.
- indexOf (a, b)
-
Devuelve el índice de la primera aparición de b en a.
- getitem (a, b)
-
- __getitem__ (a, b)
-
Devuelve el valor de a en su índice b.
- setitem (a, b, c)
-
- __setitem__ (a, b, c)
-
Establece el valor de a en su índice b al valor c.
- delitem (a, b)
-
- __delitem__ (a, b)
-
Elimina el valor de a en su índice b.
- getslice (a, b, c)
-
- __getslice__ (a, b, c)
-
Devuelve el corte de a desde el índice b hasta el c
-1
.
- setslice (a, b, c, v)
-
- __setslice__ (a, b, c, v)
-
Establece el valor del corte de a desde el índice b al c
-1
a la
secuencia v.
- delslice (a, b, c)
-
- __delslice__ (a, b, c)
-
Elimina el corte de a desde su índice b al c
-1
.
El módulo operator también define unos cuantos predicados para
comprobar el tipo de los objetos Nota: No se debe malinterpretar
el resultado de estas funciones, sólo isCallable() tiene
cierta fiabilidad con instancias de objetos. Por ejemplo:
>>> class C:
... pass
...
>>> import operator
>>> o = C()
>>> operator.isMappingType(o)
1
- isCallable (o)
-
Obsoleto a partir de la versión 2.0.
Usar la función interna callable() en lugar de ésta.
Devuelve el valor verdadero si el objeto o puede llamarse como función,
falso en caso contrario. Se devuelve verdadero para las funciones, métodos
enlazados o no, e instancias de objetos que soportan el método
__call__().
- isMappingType (o)
-
Devuelve verdadero si el objeto o soporta la interfaz de correspondencia
(como los diccionarios). Es verdadero para los diccionarios y los objetos
instancia.
Aviso: No hay un modo fiable de verificar si una instancia soporta
la interfaz de correspondencia completa, pues la interfaz misma está débilmente
definida. Esto hace que esta comprobación no sea tan útil como se podría desear.
- isNumberType (o)
-
Devuelve verdadero si el objeto o representa un número. Es cierto
para todos los números implementados en C y para todos los objetos instancia.
Aviso: No hay un modo fiable de verificar si una instancia soporta
la interfaz de número completa, pues la interfaz misma está débilmente
definida. Esto hace que esta comprobación no sea tan útil como se podría desear.
- isSequenceType (o)
-
Devuelve verdadero si el objeto o soporta la interfaz de secuencia
(como las listas). Es verdadero para todos los objetos que definen métodos de
secuencia en C y los objetos instancia.
Aviso: No hay un modo fiable de verificar si una instancia soporta
la interfaz de secuencia completa, pues la interfaz misma está débilmente
definida. Esto hace que esta comprobación no sea tan útil como se podría desear.
Ejemplo: Construir un diccionario que haga corresponder los ordinales desde0
a
256
a sus caracteres correspondientes.
>>> import operator
>>> d = {}
>>> keys = range(256)
>>> vals = map(chr, keys)
>>> map(operator.setitem, [d]*len(keys), keys, vals)
Ver Sobre este documento... para obtener información sobre sugerencias.