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

如何为next()函数与生成器添加正确的Python类型提示?

解决PyCharm中yield from的类型提示错误问题

你的代码里,PyCharm的类型提示错误地把next(range_itterable)的返回类型识别成了range,这是因为类型推断对yield from的处理存在局限。要让类型提示系统识别正确的返回类型,只需给生成器函数添加明确的返回类型注解:

修改后的代码

from typing import Iterator  # Python 3.9+ 可改用 collections.abc.Iterator

def range_iter(self, val: int) -> Iterator[int]:
    yield from range(val)

range_itterable = range_iter(10)

说明

  • yield from range(val)会逐个产出range对象中的int类型元素,因此生成器的返回类型应该标注为产生int的迭代器(Iterator[int])。
  • 手动添加这个注解后,PyCharm的类型提示系统就能正确识别next(range_itterable)的返回类型为int。

内容的提问来源于stack exchange,提问作者torrentails

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:52:39