在下面的玩具示例中,最后一行B()。show()没有调用适当版本的show函数。应该将其称为子版本而不是父版本。我想我应该做类似__class_method()的事情,但找不到完整的答案。
我当然可以覆盖B中的show函数。但这实际上意味着要复制并粘贴show函数。这不优雅。
## version one ##
class A(object):
def method(self):
print("hello")
def show(self):
self.method()
class B(A):
def method(self):
print("goodbye")
A().show() ## print out hello
B().show() ## print out goodbye
## version two ##
class A(object):
def __method(self):
print("hello")
def show(self):
self.__method()
class B(A):
def __method(self):
print("goodbye")
A().show() ## print out hello
B().show() ## print out hello
相关分类