Image

Imagejekel wrote in Imageru_python

обьясните почему всё так, а не иначе

привет All.
есть код:
class t(object):
    def __init__(self):
        print "im t init"
class A(object):
    a1 = t()
    def __init__(self):
        print id(self.a1)

cl1 = A()
cl2 = A()
cl3 = A()

cl1.a1.a = 1

print cl3.a1.a
результат выполнения -
im t init
41473392
41473392
41473392
1

почему конструктор у a1 = t() вызывается всего 1 раз ? и как получается что при создании 3х экземпляров класса А, у них у всех одинаковый объект a1?
как сделать чтобы a1 все-таки был свой для каждого экземпляра без объявления оного через __init__?