我有以下内容:
class A(object):
def x(self): print "Hello"
def y(self): self.x()
class Abis(A):
def x(self): print "Bye"
a = Abis()
a.x()
a.y()
打印:
Bye
Bye
但我其实想要:
Bye
Hello
因为我希望 A.y 调用“原始”A.x。当派生类重载它时,如何在 A 中引用原始的 A.x?
请您参考如下方法:
像这样:
class A(object):
def x(self): print "Hello"
def y(self): A.x(self)
...虽然这有点奇怪。如果您不想在这种情况下调用它,为什么您(或者,为什么有人)覆盖 x?
如果你不想覆盖它,给它一个双下划线前缀:
class A(object):
def __x(self): print "Hello"
def y(self): self.__x()
任何在派生类中定义 __x 的人都将获得他们自己的唯一 __x,不会覆盖您的 - 参见 Private Variables and Class-local References .
