Python 2.6 在解析整个脚本之前不会抛出断言错误

Python 2.6 doesn't throw Assertion Error before parsing the entire script

我在 Python 中使用了一个简单的代码来声明新版本,然后再继续。这是代码:-

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

运行 那段代码通过 Python 2.6 解释器 returns 出现 SyntaxError 如下:-

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

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

我认为问题在于 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()