gpt4 book ai didi

python - 为什么在父类中改变 'x'的值只会改变一个子类的值?

转载 作者:太空狗 更新时间:2023-10-30 02:29:09 25 4
gpt4 key购买 nike

在试验 python 时,我意识到这段代码不会产生我预期的输出:

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的值?

谢谢

最佳答案

当您分配给 Child1.x 时,您仅为 Child1 创建了一个新属性。但是,Child2 没有自己的 x 属性,因此它继承了 Parent 的版本,无论其当前值是多少。

关于python - 为什么在父类中改变 'x'的值只会改变一个子类的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com