我需要确定装饰器中函数的argspec(inspect.getargspec):
def decor(func): @wraps(func) def _decor(*args, **kwargs): return func(*args, **kwargs) return _decor @decor def my_func(key=1, value=False): pass
我需要能够检查包装的“ my_func”并返回键/值参数及其默认值。似乎inspect.getargspec没有获得适当的功能。
(FWIW,我需要它来进行一些运行时检查/验证以及以后的文档生成)
如果您使用Michele Simionato的装饰器模块来装饰您的功能,则decorator.decorator它将保留原始功能的签名。
import inspect import decorator @decorator.decorator def decor(my_func,*args,**kw): result=my_func(*args,**kw) return result @decor def my_func(key=1, value=False): pass decorated_argspec = inspect.getargspec(my_func) print(decorated_argspec) # ArgSpec(args=['key', 'value'], varargs=None, keywords=None, defaults=(1, False))