我有一个类,我添加一个帮助功能与setattr。该函数是一个正确创建的实例方法,它的工作效果非常好。
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
如果我没有错的话,添加这种方法也可以修复您的help-problem…
的例子:
>>> 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