擅长:python、mysql、java
<p>这与IPython无关,IPython只读取对象的<code>__doc__</code>属性。如果您在<code>__getattr__</code>方法中动态创建对象,那么只需设置它们的<code>__doc__</code>属性,那么在IPython中一切都将正常工作。在</p>
<p>下面是一个例子:</p>
<pre><code>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
</code></pre>