【发布时间】:2013-02-12 00:13:42
【问题描述】:
给定一个生成器对象,是否可以识别用于创建它的函数?
def gen_func():
yield
gen = gen_func()
// From `gen`, how do I get a reference to `gen_func` ?
我正在实现一个装饰器,用于装饰带有附加属性的生成器函数。我需要稍后从生成器本身访问该属性。
【问题讨论】:
-
没有黑魔法,没有。还是可以得到函数名
gen.gi_code.co_name -
gen.gi_frame.f_globals[gen.gi_code.co_name],也许吧?有时?如果你幸运的话?
标签: python generator yield python-3.3