You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

当未向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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:05:55