Python 3.12中Pylint报E1131:PEP 604类型语法校验异常
问题解答
你的操作没毛病,PEP 604明确规定Python 3.10及以上版本可以直接用int | str这类联合类型语法编写类型注解。
出现这个报错是Pylint 3.0.3的兼容性问题:
- 未添加
from __future__ import annotations时,类型注解会在运行时直接求值,Pylint此时错误地将int | str识别为普通二元操作,而非PEP 604定义的联合类型语法,因此触发E1131错误。 - 添加该导入后,类型注解会以字符串形式存储(延迟到需要时才解析),Pylint的类型解析器能正确识别字符串中的
int | str为联合类型,所以能通过校验。
这属于Pylint的已知兼容问题,后续版本大概率会修复。目前的临时解决方案要么保留from __future__ import annotations导入,要么等待Pylint更新到修复该问题的版本。
内容的提问来源于stack exchange,提问作者Tibit
相关产品推荐
相关产品推荐

