与setattr一起添加的属性在help()中没有显示



我有一个类,我添加一个帮助功能与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

相关内容

  • 没有找到相关文章

最新更新