Python 类中属性的初始化/声明:应该放在哪里?
我在想,在Python中初始化对象属性的最佳做法是什么,是在类的主体部分,还是在__init__
函数里面?
也就是说:
class A(object):
foo = None
和
class A(object):
def __init__(self):
self.foo = None
2 个回答
77
如果你想让这个属性在这个类的所有实例中都能共享,就要使用类属性:
class A(object):
foo = None
这样会让 ('foo',None)
成为 A.__dict__
中的一个 (key,value)
对。
如果你想让这个属性可以在每个实例中单独设置,就要使用实例属性:
class A(object):
def __init__(self):
self.foo = None
这样会让 ('foo',None)
成为 a.__dict__
中的一个 (key,value)
对,其中 a=A()
是 A
的一个实例。