跳到内容

sys-version-slice1 (YTT303)

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

源自 flake8-2020 linter。

作用

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

为什么这不好?

如果主版本号由多位数字组成,此操作将仅截取主版本号的第一位数字(例如,"10.0" 会被评估为 "1")。这通常并非预期行为,并且如果在后续 Python 版本中将该版本字符串用于特定主版本号的对比测试,可能会导致隐蔽的错误。

请改用 sys.version_info.major 来获取当前的主版本号。

示例

import sys

sys.version[:1]  # If using Python 10, this evaluates to "1".

建议改为

import sys

f"{sys.version_info.major}"  # If using Python 10, this evaluates to "10".

参考