感觉哈克,但一个方法是在文档字符串获得将通过co_consts
:
localhost-2:coding $ cat mod1.py
def my_generator():
"""this is my generator"""
for x in (1,2,3):
yield x
it = my_generator()
localhost-2:coding $ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import mod1
>>> mod1.it.__doc__
>>> mod1.it.gi_code.co_consts[0]
'this is my generator'
>>> z = mod1.my_generator()
>>> z.__doc__
>>> z.gi_code.co_consts[0]
'this is my generator'
我会更倾向于找出一些装饰,以适用于发电机的功能,以确保文档字符串保持不变。
如果你需要的功能本身,怎么样:
>>> import mod1
>>> z = mod1.my_generator()
>>> z.__doc__
>>> z.gi_frame.f_globals[z.__name__]
<function my_generator at 0x1004b7cf8>
>>> z.gi_frame.f_globals[z.__name__] is mod1.my_generator
True
>>> z.gi_frame.f_globals[z.__name__].__doc__
'this is my generator'
,但我不作任何承诺,这适用于任何情况下..
来源
2012-03-24 16:24:00
DSM
你知道了'dir'功能,对不对? – Marcin 2012-03-24 16:10:22