gpt4 book ai didi

python - 我可以在解释器解析代码之前断言 python 版本吗?

转载 作者:行者123 更新时间:2023-12-03 23:33:58 26 4
gpt4 key购买 nike

我想告诉用户他们应该使用哪个 python 版本:

import sys
assert sys.version_info >= (3, 6), "Use Python 3.6 or newer"
print(f"a format string")
但是,运行上述文件会产生语法错误:
$ python fstring.py. # default python is 2.7
File "fstring.py", line 3
print(f"a format string")
^
SyntaxError: invalid syntax
是否可以按文件执行此操作,而无需将所有 f 字符串包装在 try block 中?

最佳答案

不,这不可能在每个文件的基础上进行,因为在执行任何文件之前解析整个文件,因此在检查任何断言之前。 try也不会工作,出于同样的原因。
唯一可行的方法是,通过将代码放入字符串并调用 eval 将部分代码的解析推迟到运行时。 ,但是……不要那样做。您有两个明智的选择:根本不使用 f 字符串,或者让它失败并返回 SyntaxError。而不是您自己的自定义错误消息。
或者,如果您在 Unix 或 Linux 系统上工作,那么您可以将文件标记为可执行文件并给它一个 shebang开头的行如 #!/usr/bin/python3.8这样用户就不需要知道正确的版本来使用自己。
如果您想在每个模块的基础上执行此操作,请参阅@Chris 的答案。

关于python - 我可以在解释器解析代码之前断言 python 版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63969641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com