跳到内容

bad-version-info-comparison (PYI006)

源自 flake8-pyi 代码检查器。

作用

检查对 sys.version_info 检查使用了除 <>= 之外的比较运算符。 禁止所有其他比较运算符,例如 ><===

为什么这不好?

sys.version_info==<= 进行比较会产生意外行为,并可能导致错误。

例如,如果您的 Python 版本是 3.8.1,sys.version_info > (3, 8, 1) 将解析为 True; 同时,如果您的 Python 版本是 3.8.10,sys.version_info <= (3, 8)不会解析为 True

>>> import sys
>>> print(sys.version_info)
sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0)
>>> print(sys.version_info > (3, 8))
True
>>> print(sys.version_info == (3, 8))
False
>>> print(sys.version_info <= (3, 8))
False
>>> print(sys.version_info in (3, 8))
False

示例

import sys

if sys.version_info > (3, 8): ...

建议改为

import sys

if sys.version_info >= (3, 9): ...