我做了一些源代码分析,需要知道源代码是否只为一个版本(python2或python3)编写。理想情况下,不需要同时启动运行时和检查是否引发异常的脚本。我不想检查哪些运行时是像here那样安装的。你知道吗
也许我正在寻找某种linter,它测试典型的python2代码,比如
print "hello"
而不是
^{2}$这是我的问题我读了这样一个文件例如:
for i in range(10):
print(True) if (i % 2 == 1) else print(False)
它在python3下运行良好,并对python2产生错误
print(True) if (i % 2 == 1) else print(False)
^
SyntaxError: invalid syntax
可能与compiler一起使用,但它被标记为已弃用
有没有解决这个问题的想法,或者任何已知的linter告诉我代码是python2还是python3?或者用两个运行时运行文件是我唯一的选择?你知道吗
谢谢
您无法可靠地检测到代码仅为Python3编写。你知道吗
如果代码使用
print
作为语句,则可以确定它只适用于python2。类似地,使用except Exception, target:
的代码只能在python2上运行。你知道吗但是可以编写polyglotPython代码;通过使用^{} statements 在python2和python3上运行的代码;
from __future__ import print_function
将允许您在python2上使用print()
函数。你知道吗最好的办法是通过major Python 3 syntax changes,创建一系列启发式来对Python版本进行有根据的猜测。你知道吗
Python的Future项目有一个helpful cheatsheet,在这里可能也有帮助。你知道吗
相关问题 更多 >
编程相关推荐