I wrote codes as follow:
class a: e = [1,2,3] def __init__(self): self.name = 'Adam' b = a() c = a() if b.e is c.e: print('they are same')
the outcome is:
they are same
It shows that b.e and c.e point to the same object. And if I use
id(a), it would return me an address in memory, showing that
a has been created as an object.
When I want to creat an instance like
b=a(), codes in the
__init__() are excuted. But I am confused that when and how
e (or other members like other methods) is bound to the instance? (Actually in
__init__() there is no lines like "let’s bind
e to this instance")
e in your case is a class variable because it is declared directly under your class and not in the init, this means that it is bound to the class and not to the instance of your object.