type(self) 的其中一个用法
如果在父类中用到一个 (type(self) , function)这个方法的时候,会先去子类中查找 function 这个方法,如果子类中没有,再到父类中去找 function 这个方法。
代码如下:
class Func(objects):
def play(self):
print('父类的play')
def function(self):
print(Func.play)
class Func2(Func):
def paly(self):
print('子类的play')
Q = func2()
Q.function() # 此时寻找的 是 父类中的play
# <function Func1.play at 0x000001CCBA9EF0D0>
但是 如果将 父类的 function 方法改成下面的
def function(self):
print(type(self).play)
改成这样之后,type(self).play 就会先去子类中寻找,然后再去父类
Q.function() # 此时寻找的 是 子类中的 play
#<function Func2.play at 0x00000289A574F3A0>