¿Se puede sobrecargar el "print"?

David Picó Vila dpico en dsic.upv.es
Mie Nov 10 17:20:13 CET 2004


Aaaah, me había perdido este hilo, sorry. A esto de que estais hablando 
¿es muy propio llamarle sobrecarga del operador?  Perdón por hablar sin 
saber, pero ahora no recuerdo cómo le llaman en inglés en la 
documentación de python. Viniendo de mentalidad C++ suena un poco raro, 
porque realmente en Python no es que redefinas el operador '+', por 
ejemplo, sino que defines un método __add__ para la clase y el 
intérprete lo invoca cuando se encuentra una suma con objectos de esa 
clase. En realidad el método __add__ no está sobrecargado para la clase, 
porque sólo tiene una definición, ¿no?

En fin, que es lo mismo pero no es igual. No sé si lo he liado más.
David

Marcos Sánchez Provencio wrote:

> Puedes sobrecargar __str__ (conversión implícita a string) y __repr__ 
> (conversión implícita a legible, pero manteniendo la máxima información).
>
> soul escribió:
>
>> Estoy desarrollando una clase para trabajar con vectores ( los de las
>> mates de toda la vida :-P ). He sobrecargado los operadores +,- y * con
>> __add__,__sub__ y __mult__ respectivamente. Pero cuando hago:
>>
>> v=Vector(1,0,0)
>> print v
>>
>> Me devuelve
>> <__main__.Vector instance at 0xb7f9f50c>
>>
>> Me gustaría saber si se puede modificar el "print" para que cuando se
>> aplique sobre un objeto de esta clase devolviera la lista [1,0,0].
>>
>> Gracias
>> Soul
>>  
>


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es