首页 > 解决方案 > Python 2.6 在解析整个脚本之前不会抛出断言错误

问题描述

在继续之前,我在 Python 中使用了一个简单的代码来断言新版本。这是代码: -

import sys
assert sys.version_info >= (3, 5)
print(f"New formatting style")

通过 Python 2.6 解释器运行该代码会返回一个 SyntaxError,如下所示:-

  File "test.py", line 3
    print(f"New formatting style")
                                ^
SyntaxError: invalid syntax

我期待一个 AssertionError。任何解决方法?我的目标是显示不支持 Python 版本的用户友好消息。

标签: pythonassertion

解决方案


我认为问题在于 Python 解释器在执行任何语句之前对代码进行了标记。

一种解决方法是将您的工作代码分离到不同的模块中,并在 main.py 中仅放置一个警告

例如

import sys
if sys.version_info < (3, 5):
    print("Sorry requires Python 3.6 or greater")
    sys.exit(1)
else:
    import MyCoreModule
    MyCoreModule.main()

推荐阅读