缩小 IO[str] | 具有 sys.stdout 的 None 仍然被视为可能为 None
作者: nedbat创建于 2026年9月15日更新于 2026年9月15日
标签as designed
** 描述错误** 清晰而简洁地描述你所看到的行为和预期的行为以及复制的步骤.
** 守则或截图** 如果可能,提供最小,自成一体的代码样本(由三重背钩环绕)来演示这个问题. 代码应当定义或导入所有被引用的符号.
导入 sys
从输入导入 IO, 显示 类型
def 报表(出文:IO[str] * *=无) - > 无:
显示类型( sys. stdout)
出文件 =出文件或sys。 静态
显示类型( 出文件)
输出文件. write ("你好")这种生产(用 p1.1.414):
/用户/nbatchelder/n/coveragepy/prbug.py
/用户/nbatchelder/n/coveragepy/prbug.py:5:17 - 信息:类型"sys.stdout"为"TextIO"-"Any".
/用户/nbatchelder/n/coveragepy/prbug.py:7:17 - 信息:"出文件"类型为"IO[str] QQ TextIO QQ".
/Users/nbatchelder/n/coveragepy/prbug.py:8:13 - 错误:"write"不是"None"的已知属性(报告可选成员访问).
1个错误、0个警告、2个信息输出文件不能是8号线上的无.
内容来源: microsoft/pyright