当未向yield from传递任何yield内容时会发生什么?Python示例解析
Python生成器x为负数时的行为分析
先看提供的示例代码:
def inner(x): if x > 0: yield "Greater than zero" elif x == 0: yield "Zero" def outer(): yield from inner(x)
(注:代码里outer()函数中的x未定义,实际使用时需要提前赋值或通过参数传入)
当x为负数时:
inner(x)里的x>0和x==0两个条件都不成立,函数内部没有执行任何yield语句,因此会返回一个空生成器对象。outer()通过yield from遍历这个空生成器,最终返回的生成器也不会产生任何值。迭代这个生成器时,不会得到任何输出内容,也不会抛出异常,就像遍历一个空列表一样。
内容的提问来源于stack exchange,提问作者albertopasqualetto
相关产品推荐
相关产品推荐

