雖然與蟒蛇進行實驗,我意識到,這個代碼不會產生輸出我的預期:爲什麼在父類中更改'x'的值只會改變一個孩子的值?
class Parent(object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print Parent.x, Child1.x, Child2.x
Child1.x = 2
print Parent.x, Child1.x, Child2.x
Parent.x = 3
print Parent.x, Child1.x, Child2.x
上述代碼的輸出是:
1 1 1
1 2 1
3 2 3
爲什麼是最後一行的輸出3 2 3
而不是3 2 1
?爲什麼更改Parent.x的值也會更改Child2.x的值,但同時不會更改Child1.x的值?
感謝
因爲您將'x'的值更改爲3,即'Parent.x = 3' ..其中child2從父項中獲取x。 –
如果你刪除Child1.x = 2它會是3 3 3 但是因爲你已經設置它的孩子它不會訪問父類的值 –