class 属性写法一
class B(object):
b = []
def add(self, i):
self.b.append(i)
class 属性写法二
class B(object):
def __init__(self):
self.b = []
def add(self, i):
self.b.append(i)
问题
第一种 class 写法,在类的多次实例化时,属性 b 的地址不会变,第二种 class 写法则会改变。因此定义和使用类属性的时候,需要注意该问题,按需求定义类的属性。
官方解释
非 __init__
创建的属性,会被所有实例化对象共享。