类和实例变量有什么区别?

类和实例变量有什么区别?

Python中的类和实例变量有什么区别?

class Complex:
    a = 1

class Complex:
    def __init__(self):
        self.a = 1

使用呼叫:x = Complex().a在两种情况下都将x分配给1。

一个更深入的答案__init__()self将受到赞赏。


红糖糍粑
浏览 536回答 2
2回答

jeck猫

你所谓的“实例”变量实际上并不是一个实例变量; 它是一个类变量。请参阅有关类的语言参考。在您的示例中,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该函数是对该实例的引用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python