gpt4 book ai didi

python - 将调用签名复制到装饰器

转载 作者:太空狗 更新时间:2023-10-29 18:03:26 26 4
gpt4 key购买 nike

如果我执行以下操作

def mydecorator(f):
def wrapper(*args, **kwargs):
f(*args, **kwargs)
wrapper.__doc__ = f.__doc__
wrapper.__name__ = f.__name__
return wrapper

@mydecorator
def myfunction(a,b,c):
'''My docstring'''
pass

然后输入help myfunction,我得到:

Help on function myfunction in module __main__:

myfunction(*args, **kwargs)
My docstring

因此名称和文档字符串被正确复制过来。有没有办法也复制实际的调用签名,在这种情况下 (a, b, c)

最佳答案

这是一个使用 Michele Simionato 的 decorator module 的例子修复签名:

import decorator

@decorator.decorator
def mydecorator(f,*args, **kwargs):
return f(*args, **kwargs)

@mydecorator
def myfunction(a,b,c):
'''My docstring'''
pass

help(myfunction)
# Help on function myfunction in module __main__:

# myfunction(a, b, c)
# My docstring

关于python - 将调用签名复制到装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com