我正在尝试一些非常基本的Python继承:
import os
class Parent:
def __init__(self):
self.text = 'parent'
def getText(self):
print self.text
class Child1(Parent):
def __init__(self):
self.x = 'x'
class Child2(Parent):
def __init__(self):
self.x = 'x'
if __name__ == "__main__":
parent = Parent()
child1 = Child1()
child2 = Child2()
parent.getText()
child1.getText()
child2.getText()
但我总是
Child1 instance has no attribute 'text'
如何将变量传递给子级?(我有Java/C#的背景,不太懂Python)
在python中,当您重写一个应该继承的函数时,您将重写它的所有部分,In it也不例外。您应该调用函数super方法来使用基初始值设定项,或者在已重写的构造函数中实现该属性。
现在应该可以了。
您需要手动调用父类的构造函数-这里,
self.text
是在Parent
构造函数中初始化的,该构造函数从不被调用:init函数需要调用父init
相关问题 更多 >
编程相关推荐