gpt4 book ai didi

python - 是否可以检查 python 源代码是否只为一个版本(python 2 或 python 3)编写

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:52 28 4
gpt4 key购买 nike

我做了一些源代码分析,需要知道源代码是否只为一个版本(python 2 或 python 3)编写。理想情况下,不要在两个运行时都启动脚本并检查它是否引发异常。我不想检查安装了哪些运行时,如 here .

也许我正在寻找某种 linter,它可以测试典型的 python 2 代码,例如

print "hello"

代替

print("hello")

这是我的问题,例如我读取了这样的文件:

for i in range(10):
print(True) if (i % 2 == 1) else print(False)

在 python 3 下运行良好,在 python2 下会报错

print(True) if (i % 2 == 1) else print(False)
^
SyntaxError: invalid syntax

也许与 compiler但它被标记为已弃用

有什么解决这个问题的想法或任何已知的 linter 可以告诉我代码是 python 2 还是 3?还是我唯一的选择是使用两种运行时运行文件?

谢谢

最佳答案

您无法可靠地检测到代码是仅为 Python 3 编写的。

如果代码使用print作为一个声明,您可以确定它只适用于 Python 2。同样,使用 except Exception, target: 的代码只会在 Python 2 上运行。

但是编写多语言 Python 代码是可能的;使用 from __future__ statements 在 Python 2 和 3 上运行的代码; from __future__ import print_function会让你使用 print()例如,Python 2 上的函数。

最好的办法是通过 major Python 3 syntax changes ,并创建一系列启发式来对 Python 版本进行有根据的猜测。

Python-Future 项目有一个 helpful cheatsheet这可能在这里也有帮助。

关于python - 是否可以检查 python 源代码是否只为一个版本(python 2 或 python 3)编写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32957645/

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