python在哪里得到仍然产生'foo'的repr,即使在原始的方法被覆盖之后?Python:为什么动态添加的__repr__方法不会覆盖默认值
class Test(object):
def __init__(self, name, number_array):
self.name = name
self.number_array = number_array
def __repr__(self):
return str(self.name)
def custom_repr(self):
return str(self.name*4)
>>> A = Test('foo', [1,2])
>>> A
foo
>>> A.__repr__ = custom_repr.__get__(A, A.__class__)
>>>A.__repr__()
foofoofoofoo
>>>A
foo
不,你说得对,我认为它是重复的,只有你问这个问题的方式稍微有点 - 所以我不能马上告诉:) – user3467349 2014-09-26 01:27:37
你说得对,它是一个dup,但我真的不喜欢那里的答案。它没有链接到文档,它推测(不正确)的基本原理,它听起来像Python保证所有的特殊方法总是在课堂上查找...所以我在那里复制我的答案。 – abarnert 2014-09-26 01:31:04
PS,当dup评论被自动删除时,你是否失去了你的评论upvote rep? (不是很重要,但我有点儿好奇。) – abarnert 2014-09-26 01:40:57