跳到内容

sys-version-slice3 (YTT101)

v0.0.113 添加 · 相关问题 · 查看源码

源自 flake8-2020 linter。

作用

检查对 sys.version[:3] 的使用。

为什么这不好?

如果当前的主版本号或次版本号由多个数字组成,sys.version[:3] 将会截断版本号(例如,"3.10" 会变成 "3.1")。这通常并非预期行为,如果该版本字符串被用于测试特定的 Python 版本,可能会导致难以察觉的错误。

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

示例

import sys

sys.version[:3]  # Evaluates to "3.1" on Python 3.10.

建议改为

import sys

sys.version_info[:2]  # Evaluates to (3, 10) on Python 3.10.

参考