gpt4 book ai didi

python - 应用装饰器时如何保持帮助字符串相同?

转载 作者:行者123 更新时间:2023-11-28 21:30:43 26 4
gpt4 key购买 nike

如何在应用装饰器后保持函数中的帮助字符串可见?

现在,文档字符串(部分)被装饰器内部函数的字符串替换。

def deco(fn):
def x(*args, **kwargs):
return fn(*args, **kwargs)
x.func_doc = fn.func_doc
x.func_name = fn.func_name
return x

@deco
def y(a, b):
"""This is Y"""
pass

def z(c, d):
"""This is Z"""
pass

help(y) # 1
help(z) # 2

在 Y 函数中,帮助中未显示必需的参数。用户可能会假设它接受任何参数,但实际上没有。

y(*args, **kwargs) <= y(a, b) is desired
This is Y

z(c, d)
This is Z

我经常使用 help()dir(),因为它比 pdf 手册更快,并且希望为我的库和工具制作可靠的文档字符串,但是这是一个障碍。

最佳答案

decorator模块一览。我相信它完全符合您的要求。

In [1]: from decorator import decorator
In [2]: @decorator
...: def say_hello(f, *args, **kwargs):
...: print "Hello!"
...: return f(*args, **kwargs)
...:
In [3]: @say_hello
...: def double(x):
...: return 2*x
...:

并且信息中显示“double(x)”。

关于python - 应用装饰器时如何保持帮助字符串相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1663568/

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