【发布时间】:2012-05-16 14:33:55
【问题描述】:
代码如下:
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
我希望看到这样的输出
2
但是,我看到的是标准表示:
<__main__.Dummy object at 0x01237730>
为什么?
【问题讨论】:
-
请注意,这确实适用于旧式类(不扩展
object)。请参阅我的问题以了解差异:stackoverflow.com/questions/16062293/…
标签: python