入力するとIPythonがdocstringを取得するのが好きですfoo.bar?
foo.bar
ただし、を使用してメソッドを動的に構築することがありfoo.__getattr__
ます。おそらく のような魔法のメソッドで、docstring を動的に生成することもできfoo.__getdoc__
ます。
IPython は、その場で構築された docstring を検出して表示するように、これを行うためのメカニズムを提供しますか?
これは 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