Python类变量与实例变量学习笔记

class A:
    # aa为类变量
    aa = 1
    # xy为实例变量
    def __init__(self, x, y):
        self.x = x
        self.y = y


if __name__ == '__main__':
    # a是实例A是一个类
    a = A(2, 4)
    # 这里面xy就是实例变量,aa为类变量,a.aa会优先查找对象的变量,找不到则向上查询类变量
    print(a.aa, a.x, a.y)
    print(A.aa)
    A.aa = 11
    print(a.aa)
    a.aa = 100
    print(a.aa)
    print(A.aa)



联系与区别

联系

Python类变量被赋值
(1)类的设计里,
class里def外,通过变量名能被赋值
def里通过类对象即类名字的点运算变量名可被赋值
(2)程序里
通过类对象(类名字)的点运算类名字也可被赋值
Python实例对象变量被赋值
(1)类的设计时
def里通过self点运算变量名能被赋值,不一定非在init里,其他已被调用的方法函数里也行
(2)程序里
通过实例对象的点运算变量名可被赋值

区别

类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/106859423