これは Python 2.5 であり、GAEでもありますが、問題ではありません。
次のコードがあります。dec_check
クラスをデコレーターとして使用して、bar で foo() メソッドを装飾しています。
class dec_check(object):
def __init__(self, f):
self.func = f
def __call__(self):
print 'In dec_check.__init__()'
self.func()
class bar(object):
@dec_check
def foo(self):
print 'In bar.foo()'
b = bar()
b.foo()
これを実行するとき、私は見たいと思っていました:
In dec_check.__init__()
In bar.foo()
しかし、私はオブジェクトメソッドであるため、引数としてTypeError: foo() takes exactly 1 argument (0 given)
取るようになっています。問題は、デコレータ コードを実行しているときに のインスタンスが実際には存在しないことだと思います。.foo()
self
bar
bar
では、のインスタンスをデコレータ クラスに渡すにはどうすればよいでしょうか。