我在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再次等于汤米。 实际上,我在我的项目中遇到了这个问题,但我用上面的例子解释了我的问题
答案 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。