我希望能够做到以下
class Parent:
def __init__(self):
pass
def Create(self):
return 'Password'
class Child(Parent):
def __init__(self):
self.Create()
def Create(self):
return 'The '+self.Create #I want to return 'The Password'
我想在覆盖它的函数中从子类中获取父函数。我不知道该怎么做。
这有点难以解释,如果您在理解方面有问题,请发表评论。
编辑:
感谢大家的答案,我几乎认为这是不可能的。
答案 0 :(得分:8)
The super()
function适用于此类案例。但是,它只适用于“新式”类,因此您需要修改Parent
的定义以继承object
(您应该始终使用“新式”类,无论如何)。
class Parent(object):
def __init__(self):
pass
def Create(self):
return 'Password'
class Child(Parent):
def __init__(self):
self.Create()
def Create(self):
return 'The ' + super(Child, self).Create()
print Child().Create() # prints "The Password"
答案 1 :(得分:7)
要么明确地引用父项,要么(在新式类中)使用super()
。
class Child(Parent):
...
def Create(self):
return 'The ' + Parent.Create(self)
答案 2 :(得分:0)
就像通过super引用基类一样简单:
class Child(Parent):
def __init__(self):
self.Create()
def Create(self):
return 'The '+ super(Child, self).Create()
答案 3 :(得分:0)
使用super
功能访问父super(Child,self).create()
以从父级调用create。