假设我有两个功能:
def foo():
return 'foo'
def bar():
yield 'bar'
第一个函数是普通函数,第二个是生成器函数。现在我想这样写:
def run(func):
if is_generator_function(func):
gen = func()
gen.next()
#... run the generator ...
else:
func()
is_generator_function()
的简单实现是什么样子的?使用 types
包我可以测试 gen
是否是一个生成器,但是我希望在调用 func()
之前这样做。
现在考虑以下情况:
def goo():
if False:
yield
else:
return
对 goo()
的调用将返回一个生成器。我假设 python 解析器知道 goo()
函数有一个屈服语句,并且我想知道是否可以轻松获得该信息。
谢谢!