我有以下课程:
class StrLogger(str):
def __init__(self, *args):
self._log_ = []
str.__init__(self, *args)
def __getattribute__(self, attr):
self._log_.append((self.__name__, attr))
return str.__getattribute__(self, attr)
我可以初始化一个StrLogger
withslog = StrLogger('foo')
并且我可以访问它的所有继承方法str
并且它运行没有问题。问题是,当我尝试使用slog._log_
or检索日志时slog.__dict__['_log_']
,该__getattribute__
方法陷入无限递归。我理解为什么会发生这种情况,但我的问题是,如何访问日志?