Traducción de métodos especiales
Joan Ordinas
jordinas en gmail.com
Mie Dic 29 09:02:06 CET 2004
No he conseguido encontrar documentación que describa lo que creo es
un comportamiento correcto de Python 2.3.3. El caso es que al ejecutar
un método especial (__str__, por ejemplo) la documentación dice que,
por ejemplo,
str(o)
se traduce a
o.__str__()
pero el caso es que se traduce a
type(o).__str__(o)
o escrito de otra forma, para las nuevas clases
o.__class__.__str__(o)
Esto sucede con todos los métodos especiales. Demostración:
>>> class C(object):
... def __str__(self):
... return 'C.__str__'
>>> o = C()
>>> o.__str__ = lambda : 'o.__str__'
>>> o.__str__()
'o.__str__'
>>> str(o)
'C.__str__'
>>> print o
C.__str__
¿Alguien ha encontrado documentació que confirme esta impresión?
JJOR
--
WYSIWYG victims: the lost generation!
Más información sobre la lista de distribución Python-es