class TestClass():
class_v = 0
def __init__(self) -> None:
self.class_v += 1
TestClass.class_v += 1
print(TestClass.class_v) # 0
class_a = TestClass()
class_b = TestClass()
print(f'class_a.class_v = {class_a.class_v}') # 1
print(f'class_b.class_v = {class_b.class_v}') # 2
print(TestClass.class_v) # 2
在上面的python代码中,当类变量和实例变量的名称相同时,使用同一个类创建了两个实例,但在导入变量时值不同。如果是实例变量,则两者都必须为1,如果是类变量,则两者都必须为2。python是如何工作的?
# ex
TestClass.class_v += 1
self.class_v += 1
如果更改上面代码块的顺序,则会输出 2 和 3,而不是 1 和 2。