J'ai une classe simple en python qui a une fonction __str__()
. Comme ceci:Chaîne d'instance Python dans une liste
class Foo(object):
def __init__():
self.name = 'something'
def __str__():
return self.name
Ma vraie classe fait plus que cela, mais c'est un exemple.
Alors je fais ceci:
a = Foo()
b = Foo()
print a
print b
print [a,b]
Sauf cette impression:
something
something
[<Foo object at HexString>,<Foo object at HexString>]
Pourquoi la version imprimée dans la liste ne s'impriment le nom str de l'instance et est-il un moyen facile pour l'obtenir?
J'ai essayé de voir si __unicode__
est différent et ce n'est pas le cas.
de oups. Je tapais ça à la main et je les ai juste oubliés. Le vrai code est correct. – lovefaithswing
Notez que l'implémentation par défaut de '__str __()' appelle simplement '__repr __()', donc si vous voulez que les deux fassent la même chose, il vous suffit de définir '__repr __()'. –
@Sven: Bon à savoir, merci – Cameron