Father 类可以以某种方式看到 Child 类的方法。我推测在 init 期间,Father 只能使用内部方法
但显然我错了。这是代码:
class Father():
def __init__(self):
self.name=self.getName()
print "from Father ->", self.name
def getName(self):
return "father"
class Child(Father):
def __init__(self):
Father.__init__(self)
self.name=self.getName()
print "from Child ->", self.name
def getName(self):
return "child"
if __name__ == "__main__":
import sys, pprint
someone=Child()
输出是
from Father -> child
from Child -> child
但我想得到
from Father -> father
from Child -> child
有什么想法如何重写它吗? Tnx!
最佳答案
这就是 name-mangling 的目的:它允许你说:“这个类的属性”:
class Father():
def __init__(self):
self.name=self.__getName()
print "from Father ->", self.name
def __getName(self):
return "father"
class Child(Father):
def __init__(self):
Father.__init__(self)
self.name=self.__getName()
print "from Child ->", self.name
def __getName(self):
return "child"
if __name__ == "__main__":
import sys, pprint
someone=Child()
产量
from Father -> father
from Child -> child
有关更多信息,另请参阅this post .
关于python 继承函数在 init 期间重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140568/