当我运行此代码时,它输出为10 10 10 12 24 10.有谁可以帮助我理解输出?我是python编程的新手
class A:
x = 10
class B(A):
pass
class C(A):
pass
print (A.x)
print (B.x)
print (C.x)
A.x += 2
B.x *= 2
C.x -= 2
print (A.x)
print (B.x)
print (C.x)
答案 0 :(得分:0)
我不知道你知道哪种编程语言,但Python在这里的工作方式与其他语言不同。在C ++中,您只需假设变量x作为自己的实例存在3次,这意味着变量彼此独立。这将导致输出序列10 10 10 12 20 8。
但是,我认为对于Python,会发生以下情况:
我认为对于Python,你需要知道“按对象调用”的概念,这是无所不在的。它与已知概念的不同之处在于“按值调用”或“按引用调用”。另请参阅Is Python call by reference or value。