Посмотрите этот простой пример. Я не совсем понимаю, почему o1 печатает «Hello Alex» дважды. Я думаю, что из-за по умолчанию self.a всегда возвращается в пустой список. Может ли кто-нибудь объяснить мне, что здесь является обоснованием? Огромное спасибо.Простой python oo issue
class A(object):
def __init__(self, a=[]):
self.a = a
o = A()
o.a.append('Hello')
o.a.append('Alex')
print ' '.join(o.a)
# >> prints Hello Alex
o1 = A()
o1.a.append('Hello')
o1.a.append('Alex')
print ' '.join(o1.a)
# >> prints Hello Alex Hello Alex
это даже упоминается в документации: http://docs.python.org/tutorial/controlflow.html#default-argument-values -> «Важное предупреждение» - насколько это очевидно? – hop
не то, что очевидно и вполне противостоят интуитивно понятным. –