Functools.update_wrapper () не работает должным образом
я используюFunctools.update_wrapper()
в моем декораторе, но похожеupdate_wrapper
переписывает только атрибуты функций (например,__doc__
, __name__
), но не влияет наhelp()
функция.
Я в курсеэти ответы, но они не работают с декоратором.
Вот моя функция.
import functools
class memoized(object):
def __init__(self, func):
self.func = func
functools.update_wrapper(self, func)
def __call__(self, *args):
self.func(*args)
@memoized
def printer(arg):
"This is my function"
print arg
Вот вывод
>>> printer.__doc__
This is my function
>>> help(printer)
Help on memoized in module __main__ object:
printer = class memoized(__builtin__.object)
| Methods defined here:
|
| __call__(self, *args)
|
| __init__(self, func)
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
Это похоже на ошибку, но как я могу это исправить?