ChildClass无法访问ParentClass的新值'成员变量

时间:2015-03-02 18:03:45

标签: python oop inheritance

我在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

但我希望看到杰克而不是汤米。 我在Python 2.7.9中遇到了这个问题 谁能解释这个问题或者给我们一个解决方案? ChildClass是否会调用ParentClass'构造函数?所以self.name再次等于汤米。 实际上,我在我的项目中遇到了这个问题,但我用上面的例子解释了我的问题

1 个答案:

答案 0 :(得分:0)

这两个对象彼此无关。

>>> 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