Посмотрите этот простой пример. Я не совсем понимаю, почему o1 печатает "Hello Alex" дважды. Я бы подумал, что из-за по умолчанию self.a всегда reset в пустой список. Может ли кто-нибудь объяснить мне, что здесь есть? Большое вам спасибо.
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