Это - Python 2.5, и это - GAE также, не, что это имеет значение.
У меня есть следующий код. Я украшаю нечто () метод в панели, с помощью dec_check класса в качестве декоратора.
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()
, быть методом объекта, берет сам в качестве аргумента. Я предполагаю, что проблема состоит в том что экземпляр bar
на самом деле не существует, когда я выполняю код декоратора.
Таким образом, как я передаю экземпляр bar
к классу декоратора?