以下代码仅打印“好”。为什么不执行生成器函数?我注意到 pdb 在执行 'handlers1' 后,脚本到达了 f1 定义的行,但随后没有进入函数内部。相反,它返回“GeneratorExit:无”。
class foo:
def f0(self, s):
print s
def f1(self, s):
print "not " + s
yield 1
def run(self):
handlers={0 : self.f0, 1 : self.f1}
handlers[0]('good')
handlers[1]('good')
bar = foo()
bar.run()
为什么会发生这种情况?是否可以以类似的动态方式调用生成器函数?