所以我一直堅持這個一段時間,圖我會要求一些建議。我試圖創建一個修飾器,可以修改函數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
我看了一下裝飾模塊,做維護簽名,但我似乎無法修改的文檔字符串。
所有的幫助感激
感謝您的回覆。在這種情況下,使用裝飾模塊將會發揮作用。但不是在我想的情況下。將裝飾器放在內部函數上將保留傳遞給該函數的簽名。 –