class Parent: 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)
點(diǎn)評(píng):運(yùn)行上面的代碼首先輸出 1 1 1,這一點(diǎn)大家應(yīng)該沒有什么疑問(wèn)。
接下來(lái),通過(guò)Child1.x = 2給類Child1重新綁定了屬性x并賦值為2,所以Child1.x會(huì)輸出2,而Parent和Child2并不受影響。
執(zhí)行Parent.x = 3會(huì)重新給Parent類的x屬性賦值為3,由于Child2的x屬性繼承自Parent,所以Child2.x的值也是3;
而之前我們?yōu)镃hild1重新綁定了x屬性,那么它的x屬性值不會(huì)受到 Parent.x = 3的影響,還是之前的值2。 1 1 1 1 2 1 3 2 3