En cuanto el pequeño ornitorrinco me deje, me hago la camiseta correspondiente.
lunes, diciembre 18, 2006
Gracias, Victor
Siempre me entero tarde de todo. Esta vez de las pegatinas virtuales que generosamente ha creado Victor para la blogocosa canaria. Mil gracias.

En cuanto el pequeño ornitorrinco me deje, me hago la camiseta correspondiente.
En cuanto el pequeño ornitorrinco me deje, me hago la camiseta correspondiente.
Publicado por
Juan Ignacio Rodríguez de León
a las
1:33 p.m.
3
comentarios
Enlaces a esta entrada
| Reacciones: |
jueves, diciembre 14, 2006
After Upgrade
Publicado por
Juan Ignacio Rodríguez de León
a las
12:25 p.m.
7
comentarios
Enlaces a esta entrada
| Reacciones: |
Etiquetas:
blogger
Upgrade
Nos pasamos al nuevo blogger beta ¡Qué Doraemon nos coja confesados!
Publicado por
Juan Ignacio Rodríguez de León
a las
10:24 a.m.
0
comentarios
Enlaces a esta entrada
| Reacciones: |
Etiquetas:
blogger
domingo, diciembre 10, 2006
Otro dictadorzuelo menos
Publicado por
Juan Ignacio Rodríguez de León
a las
6:56 p.m.
6
comentarios
Enlaces a esta entrada
| Reacciones: |
jueves, diciembre 07, 2006
[Python 2.5] - El método __index__
Los desarrolladores de NumPy tenían un problema que sólo se podía resolver añadiendo un nuevo método especial, __index__. Al usar la notación de recorte (slices), o sea, cosas como [inicio:final:incremento] , los valores de inicio, final e incremento debían ser siempre enteros o enteros largos. NumPy, sin embargo, define un conjunto de tipos de números enteros especializados, por ejemplo, enteros con signo o sin signo, con tamaños de 8, 16, 32 o 64 bits. El problema era que no había ningún sistema para indicar que estos tipos también podían ser usados como índices en las operaciones de recorte.
Es verdad que ya existía el método especial __int__, que se utiliza para realizar una conversión implícita a números enteros. Sin embargo, utilizar dicho método provocaría que los números en coma flotante también serían utilizables como índices en las operaciones de recorte, un comportamiento que es claramente poco deseable.
Por eso se ha introducido el nuevo método especial __index__. No acepta ningún argumento, y devuelve un entero que se utilizará para las operaciones de recorte. Por ejemplo:
El valor retornado debe ser obligatoriamente un entero o un entero largo de Python. El interprete comprobará el tipo, y elevará una excepción de tipo TypeError en caso de no cumplirse esta restricción.
Para los que estén escribiendo extensiones en C, se ha añadido una entrada o slot nb_index en la estructura PyNumberMethods, que permite a las extensiones implementar este protocolo. Se puede utilizar PyNumber_Index(obj) para llamar a la función __index__ y obtener su resultado.
Se puede obtener más información de esta ampliación leyendo el PEP original: PEP 357, Allowing Any Object to be Used for Slicing.
Más información sobre las novedades en Python 2.5
Es verdad que ya existía el método especial __int__, que se utiliza para realizar una conversión implícita a números enteros. Sin embargo, utilizar dicho método provocaría que los números en coma flotante también serían utilizables como índices en las operaciones de recorte, un comportamiento que es claramente poco deseable.
Por eso se ha introducido el nuevo método especial __index__. No acepta ningún argumento, y devuelve un entero que se utilizará para las operaciones de recorte. Por ejemplo:
class C:
def __index__(self):
return self.value
El valor retornado debe ser obligatoriamente un entero o un entero largo de Python. El interprete comprobará el tipo, y elevará una excepción de tipo TypeError en caso de no cumplirse esta restricción.
Para los que estén escribiendo extensiones en C, se ha añadido una entrada o slot nb_index en la estructura PyNumberMethods, que permite a las extensiones implementar este protocolo. Se puede utilizar PyNumber_Index(obj) para llamar a la función __index__ y obtener su resultado.
Se puede obtener más información de esta ampliación leyendo el PEP original: PEP 357, Allowing Any Object to be Used for Slicing.
Más información sobre las novedades en Python 2.5
Publicado por
Juan Ignacio Rodríguez de León
a las
9:47 a.m.
0
comentarios
Enlaces a esta entrada
| Reacciones: |
Etiquetas:
python
Suscribirse a:
Entradas (Atom)

