2009-09-06 8 views

Respuesta

12

Puede utilizar object.__str__():

class A: 
    def __str__(self): 
     return "Something useless" 

class B(A): 
    def __str__(self): 
     return object.__str__(self) 

Esto le da la salida por defecto para las instancias de B:

>>> b = B() 
>>> str(b) 
'<__main__.B instance at 0x7fb34c4f09e0>' 
2

"la función predeterminada que Python usa si no hay un __str__ método "es repr, entonces:

class B(A) : 
    def __str__(self) : 
     return repr(self) 

Esto se aplica si __repr__ ha sido anulado o no en la cadena de herencia. IOW, si TAMBIÉN necesita eludir posibles reemplazos de __repr__ (en lugar de usarlos si existen, como lo haría este enfoque), necesitará llamadas explícitas al object.__repr__(self) (o al object.__str__ como otra sugerencia sugerida, lo mismo).

Cuestiones relacionadas