This question already has answers here:
How do I call a parent class's method from a child class in Python?
(15 个回答)
5年前关闭。
我试图了解 Python 中的父类和子类是如何工作的,但我遇到了这个看似简单的问题:
我期待字符串 42 是答案!但我明白了
我错过了什么?
我用
所以
在 Python 3.x 中,您可以简单地调用 -
(15 个回答)
5年前关闭。
我试图了解 Python 中的父类和子类是如何工作的,但我遇到了这个看似简单的问题:
class parent(object):
def __init__(self):
self.data = 42
class child(parent):
def __init__(self):
self.string = 'is the answer!'
def printDataAndString(self):
print( str(self.data) + ' ' + self.string )
c = child()
c.printDataAndString()
我期待字符串 42 是答案!但我明白了
我错过了什么?
我用
pass
和 super(parent,...)
进行了试验,但没有得到正确的结果。 最佳答案
由于您的 child
有自己的 __init__()
函数,因此您需要调用父类的 __init__()
,否则不会被调用。例子 -
def __init__(self):
super(child,self).__init__()
self.string = 'is the answer!'
super()
from documentation -所以
super()
的第一个参数应该是子类(你想调用其父类的方法),第二个参数应该是对象本身,即 self.因此, super(child, self)
。在 Python 3.x 中,您可以简单地调用 -
super().__init__()
它会从正确的父类调用 __init__()
方法。关于python - 从父类获取变量用于子类的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32371537/
10-10 10:59