类和实例变量有什么区别?Python中的类和实例变量有什么区别?class Complex:
a = 1和class Complex:
def __init__(self):
self.a = 1使用呼叫:x = Complex().a在两种情况下都将x分配给1。一个更深入的答案__init__(),self将受到赞赏。
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
你所谓的“实例”变量实际上并不是一个实例变量; 它是一个类变量。请参阅有关类的语言参考。
在您的示例中,a
似乎是一个实例变量,因为它是不可变的。在分配可变对象时,可以看到它作为类变量的性质:
>>> class Complex:
>>> a = []
>>>
>>> b = Complex()
>>> c = Complex()
>>>
>>> # What do they look like?
>>> b.a
[]
>>> c.a
[]
>>>
>>> # Change b...
>>> b.a.append('Hello')
>>> b.a
['Hello']
>>> # What does c look like?
>>> c.a
['Hello']
如果你使用过self
,那么它将是一个真正的实例变量,因此每个实例都有它自己的唯一a
。创建新实例时__init__
会调用对象的函数,并且self
该函数是对该实例的引用。
添加回答
举报
0/150
提交
取消