第19课:Python类变量与成员变量

python 的类中,主要会使用的两种变量:类变量与成员变量。类变量是类所有实例化对象共有的,而成员变量是每个实例化对象自身特有的,下面通过两个小程序来说明一下。

class A(object):
    def __init__(self):
        #aa为成员变量
        self.aa = 10

    @staticmethod
    def test(self):
        self.aa += -1
if __name__ == '__main__':
    x = A()
    y = A()
    #调用x
    x.test(x)
    print x.aa #输出9
    y.test(y)
    print x.aa #输出9
    print y.aa #输出9

class A(object):
    #aa为类变量
    aa = 10

    @staticmethod
    def test(self):
        A.aa += -1

if __name__ == '__main__':
    x = A()
    y = A()
    x.test(x)
    print x.aa #输出9
    y.test(y)
    print x.aa #输出8
    print y.aa #输出8

我们可以在析构函数中以self.aa的方式去获得,不过很明显,这时的aa以成员变量的形式出现,这时对其进行的修改变只能针对它的对象本身,而不会影响到其他的类对象。我想,这样的设计应该更加符合析构函数的定义,否则当一个对象退出作用域时,对其他对象也将是一件特别危险的事