Decorator question
Lucasm
lordlucraft at gmail.com
Sat Oct 16 09:15:55 EDT 2010
Hello,
I have a decorator problem and hope someone is able to help me out/
assist me. Thanks in advance.
Suppose:
### Begin some_library_module ###
def some_decorator(some_method):
def inner(an_arg, *args, **kwargs):
return some_method(an_arg, *args, **kwargs)
return inner
### End some_library_module ###
### Begin my_module ###
def my_decorator(some_method):
def inner(self, an_arg, *args, **kwargs):
self.do_something()
return some_decorator(some_method)(an_arg, *args, **kwargs)
return inner
class My_Class(object):
@my_decorator
def my_method(self, an_arg, *args, **kwargs):
print self, an_arg
def do_something(self):
pass
### End My_module ###
>>> My_Class().my_method('bla')
TypeError: my_method() takes at least 2 arguments (1 given)
`self` is lost in the process, because my decorator does use it and
the library's doesn't. I fail to find a way to keep self in the args
without modifying the library.
More information about the Python-list
mailing list