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