跳到内容

sys-version-cmp-str10 (YTT302)

源自 flake8-2020 linter。

作用

检查将 sys.version 与字符串字面量进行比较的情况,这种比较在主版本号递增到 Python 10 或更高版本时将会失败。

为什么这不好?

sys.version 与字符串进行比较容易出错,并可能导致细微的错误,因为比较将按字典顺序执行,而不是语义顺序。

相反,请使用 sys.version_info 来访问当前主版本号和次版本号作为元组,该元组可以与其他元组进行比较,而不会出现问题。

示例

import sys

sys.version >= "3"  # `False` on Python 10.

建议改为

import sys

sys.version_info >= (3,)  # `True` on Python 10.

参考