# 通过类对象是无法修改类变量的值的,本质其实是给类对象新添加 name 和 age 这 2 个实例变量。不会影响类的其它实例化对象,更不会影响同名的类变量。 # 和类变量不同,实例变量只能通过类对象名访问,无法通过类名访问。 # 通过cls和类名修改类变量的值,会修改同名的类变量,会影响所有的实例化对象
class Person:
name='jerry'
age='20'
def __init__(self, name, age):
self.name = name
self.age = age
print("构造函数", name, age)
@classmethod
def A(cls):
# cls()等价于类Person(),
# 通过类对象p是无法修改类变量的
p=cls("Tom", 18)
print('cls:', cls, p)
return p
@classmethod
def B(cls):
# 类方法cls可以直接调用类变量
print("B结果:", cls.name, cls.age)
@classmethod
def C(cls):
# 类方法cls可以直接调用类变量
# cls和类名一样可修改类变量的值,会影响所有的实例化对象
cls.name="曹操"
cls.age=50
if __name__ == '__main__
|