所以我已经坚持了一段时间,我想我会寻求一些建议。我正在尝试创建一个装饰器,它可以修改函数文档字符串,允许可选参数或无参数,并且保留签名。这些可以单独进行。甚至得到三个中的两个。
下面的示例似乎修改了文档字符串并允许可选参数或没有参数。但是,此方法不保留签名。
from functools import wraps
def thisDecorator(*targs, **tkwargs):
def internalFunc(func):
func.__doc__ = "Added this... {0}".format(func.__doc__)
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
if len(targs) == 1 and callable(targs[0]):
return internalFunc(targs[0])
else:
return internalFunc
我已经阅读了确实保留签名的装饰器模块,但我似乎无法修改文档字符串。
非常感谢所有帮助