有没有一种方法可以实时生成IPython文档字符串?

2024-06-28 20:02:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我喜欢IPython在我输入foo.bar?时获取docstrings

但是,有时我可能会使用foo.__getattr__动态地构建foo.bar方法。我可以想象我也可以动态地生成一个docstring,也许是用一个神奇的方法,比如foo.__getdoc__。在

IPython是否提供了任何机制来实现这一点,从而可以动态地发现和显示docstring?在


Tags: 方法fooipythonbar动态机制docstringdocstrings
2条回答

这与IPython无关,IPython只读取对象的__doc__属性。如果您在__getattr__方法中动态创建对象,那么只需设置它们的__doc__属性,那么在IPython中一切都将正常工作。在

下面是一个例子:

class A(object):
    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return 'A[%s]' % self.name

class Test(object):
    def __getattr__(self, name):
        a = A(name)
        a.__doc__ = 'My a documentation'
        return a

In [11]: t = Test()
In [12]: t.foo
A[foo]
In [13]: t.foo?
Type:       A
String Form:A[foo]
Docstring:  My a documentation

您可以设置foo.__doc__ = "my doc string"。在

相关问题 更多 >