私は次のクラスを持っています:
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
、slog = StrLogger('foo')
継承されたすべてのメソッドにアクセスできstr
、問題なく実行されます。slog._log_
問題は、またはのいずれかでログを取得しようとするとslog.__dict__['_log_']
、__getattribute__
メソッドが無限再帰でスタックすることです。なぜこれが起こっているのか理解していますが、私の質問は、どうすればログにアクセスできますか?