标签:思考 覆盖 调用 __init__ bsp style def ora print
class Oar:
def __init__(self,oar):
self.o=oar
def print(self):
print(self.o) # print 不会到class Oar下面找,除非引用self.print
def decorator(cls):
def _print(self): # 当使用print时,覆盖了built-in的print,print内的print会到上一级寻找print,循环调用了自身
# 使用格式化字符串format时,因为循环调用下一次的self被format成了str
print(‘content: {}‘.format(self.o))
# return self
# print(self) # 覆盖print后,print只能接收一个parameter
cls.print=_print
return cls
@decorator
class InheritOar(Oar):pass
i=InheritOar(‘uiop‘)
print(InheritOar.__dict__)
print(i.print())
标签:思考 覆盖 调用 __init__ bsp style def ora print
原文地址:https://www.cnblogs.com/dissipate/p/13767062.html