给定一个函数:
def func(f1, kw='default'):
pass
bare_argspec = inspect.getargspec(func)
@decorator
def func2(f1, kw='default'):
pass
decorated_argspec = inspect.getargspec(func2)
我怎样才能创建一个这样的装饰器bare_argspec == decorated_argspec
?
(至于为什么,调用装饰函数的框架会进行 argspec 检查以选择要传入的内容,所以装饰器必须保留相同的 argspec 才能玩得好。当我在#python 上提出这个问题时,我很长关于框架为什么糟糕的演讲,这不是我想要的;我必须在这里解决问题。另外,我也只是对答案感兴趣)