所以我一直坚持这个一段时间,图我会要求一些建议。我试图创建一个修饰器,可以修改函数docstring,允许可选参数或无,并且是签名保留。另外,这些都可以完成。甚至获得三个中的两个。维护签名的Python装饰器,允许修改文档字符串,并允许可选参数
下面的示例似乎修改了文档字符串,并允许可选参数或无。但是,这种方法不保留签名。
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
我看了一下装饰模块,做维护签名,但我似乎无法修改的文档字符串。
所有的帮助感激
感谢您的回复。在这种情况下,使用装饰模块将会发挥作用。但不是在我想的情况下。将装饰器放在内部函数上将保留传递给该函数的签名。 –