4

我希望能够做到以下几点

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'

我想从覆盖它的函数中的子类中获取父函数。我不知道该怎么做。

这有点难以解释,如果您无法理解,请发表评论。

编辑:

感谢大家的回答,我几乎认为这是不可能的。

4

4 回答 4

8

super()功能适用​​于此类情况。但是,它仅适用于“新式”类,因此您还需要修改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"
于 2012-08-20T00:20:44.430 回答
7

要么显式引用父级,要么(在新式类中)使用super().

class Child(Parent):
   ...
  def Create(self):
    return 'The ' + Parent.Create(self)
于 2012-08-20T00:21:48.470 回答
0

它就像通过super引用基类一样简单:

class Child(Parent):
    def __init__(self):
        self.Create()
    def Create(self):
        return 'The '+ super(Child, self).Create()
于 2012-08-20T00:21:16.010 回答
0

使用该super函数访问父级super(Child,self).create()以从父级调用创建。

于 2012-08-20T00:21:16.323 回答