gpt4 book ai didi

python - 使用 setattr 添加的属性未显示在 help() 中

转载 作者:行者123 更新时间:2023-11-28 17:52:02 24 4
gpt4 key购买 nike

我有一个类,我正在使用 setattr 添加一个帮助函数。该函数是一个正确创建的 instancemethod 并且工作起来非常棒。

import new
def add_helpfunc(obj):
def helpfunc(self):
"""Nice readable docstring"""
#code

setattr(obj, "helpfunc",
new.instancemethod(helpfunc, obj, type(obj)))

但是,在对象实例上调用帮助时,新方法未列为对象的成员。我以为 help(即 pydoc)使用了 dir(),但 dir() 有效,而 help() 无效。

如何更新帮助信息?

最佳答案

我有一个特定的原因让你用复杂的方式来做这件事吗?为什么不这样做:

def add_helpfunc(obj):
def helpfunc(self):
"""Nice readable docstring"""
#code

obj.helpfunc = helpfunc

如果我没记错的话,以这种方式添加方法也可以解决您的帮助问题...

例子:

>>> class A:
... pass
...
>>> add_helpfunc(A)
>>> help(A.helpfunc)
Help on method helpfunc in module __main__:

helpfunc(self) unbound __main__.A method
Nice readable docstring

>>> help(A().helpfunc)
Help on method helpfunc in module __main__:

helpfunc(self) method of __main__.A instance
Nice readable docstring

关于python - 使用 setattr 添加的属性未显示在 help() 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300808/

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