跳到内容

bad-version-info-order (PYI066)

源自 flake8-pyi 代码检查器。

作用

检查基于 sys.version_info 比较进行分支的代码,其中对应于较旧 Python 版本的分支出现在对应于较新 Python 版本的分支之前。

为什么这不好?

按照惯例,对应于较新 Python 版本的分支应该首先出现。这使得更容易理解期望的行为,这通常对应于最新的 Python 版本。

此规则通过检查将 sys.version_info< 而不是 >= 进行比较的 if 测试来强制执行此约定。

默认情况下,此规则仅适用于存根文件。在预览中,它也会标记非存根文件中的这种反模式。

示例

import sys

if sys.version_info < (3, 10):
    def read_data(x, *, preserve_order=True): ...

else:
    def read_data(x): ...

建议改为

if sys.version_info >= (3, 10):
    def read_data(x): ...

else:
    def read_data(x, *, preserve_order=True): ...