Usually, we don’t note little, but relevant, differents in the code that we are reviewing. For example, the two next classes, apparently, are equivalents:
class A: l = [] __init__(self): ...
class B:
def __init__(self): self.l = [] ...
But, really, this two classes are differ in their behavior:
>>> a = A() >>> a.l.append(1) >>> a2 = A() >>> a2.l.append(2) >>> print a.l [1,2] >>> b = B() >>> b.l.append(1) >>> b2 = B() >>> b2.l.append(2) >>> print b.1 [1]
Class A
, due to l
var is defined in class definition, share the l
var between all A objects instanciates.