ChildClass无法访问ParentClass成员variab的新值

2024-10-02 14:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

Python中的继承有问题。我自己更改了ParentClass的成员变量。问题是ChildClass无法访问ParentClass成员变量的新值。 请看这个简单的例子:

class Parent(object):

    def __init__(self):

        self.name = "Tommy"

    def changeParentName(self):

        self.name = "Jack"


class Child(Parent):

    def parentName(self):

        print self.name    

parent = Parent()
parent.changeParentName()
child = Child()
child.parentName()

如果您尝试上述示例,您将看到以下结果:

Tommy

但我希望见到杰克而不是汤米。 我对Python2.7.9有这个问题 谁能解释一下这个问题或给我们一个解决方案? 子类是否调用父类的构造函数?所以self.name又和Tommy相等了。 实际上,我在我的项目中有这个问题,但我已经用上面的例子解释了我的问题


Tags: nameselfchilddef成员tommyclass例子
1条回答
网友
1楼 · 发布于 2024-10-02 14:21:18

这两个物体彼此无关

>>> parent = Parent()
>>> parent.name
'Tommy'
>>> parent.changeParentName()
>>> parent.name
'Jack'

>>> child = Child()
>>> child.name
'Tommy'
>>> child.changeParentName()
>>> child.name
'Jack'

当您声明类Child时,您正在建立继承

class Child(Parent):

这意味着Child是一个Parent。这并不意味着Parent有一个Child

请参阅this similar question,其中讨论了继承与组合

相关问题 更多 >