Warum kann ich die __str__-Methode eines Python-Objekts nicht durch eine andere Funktion ersetzen?
Hier ist der Code:
<code>class Dummy(object): def __init__(self, v): self.ticker = v def main(): def _assign_custom_str(x): def _show_ticker(t): return t.ticker x.__str__ = _show_ticker x.__repr__ = _show_ticker return x a = [Dummy(1), Dummy(2)] a1 = [_assign_custom_str(t) for t in a] print a1[1] # print a1[1].__str__ # test to if orig __str__ is replaced </code>
Ich hatte gehofft, die Ausgabe so zu sehen
<code>2 </code>
Stattdessen sehe ich jedoch die Standarddarstellung:
<code><__main__.Dummy object at 0x01237730> </code>
Warum?