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