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)程序里
通过实例对象的点运算变量名可被赋值

区别

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