Criteria(NOT TOOLS)检查为一段代码编写的python版本是什么?

时间:2017-12-10 08:31:12

标签: python version compatibility

人们可以在互联网上找到许多小程序或示例代码,这些程序或示例代码并不一定指定它们在哪个上下文中编写(shebang),并且不一定使用明显的东西作为打印语句。

它们可能会与某些或其他版本的python崩溃,但这可能不是由于基本的不兼容性,而是由于缺少可能很难找到的库。

this question中提到了一些工具,但问题是:“判断代码是否兼容任何一个版本的python会有什么好的标准?”

至少有:

  • shebang的存在(但通常不存在)
  • 打印语句(不带括号)来自python2或之前(但你并不总是拥有它们,特别是在GUI程序中)
  • 整数除法(//)来自python 3及更高版本(但不是所有程序都计算整数除法)

还有什么?

@Mureinik,@ JJJ,@ Bear Brown,@ Tempux,请删除重复标记。

2 个答案:

答案 0 :(得分:1)

理想情况下,python脚本会在第一行包含一个shebang,例如:#!/usr/bin python和/或注释,告诉您它将使用的最小版本(可能还有最大版本)。

其他线索:

print Something  # Python 2 Only
print(Something)  # Python 3 Mostly

from __future__ import print_function # As first active code

print(Something)  # Now works for both

当然,编写良好的代码将与许多版本兼容,或者专门检查它所需的版本 s

如果缺少库,则错误消息非常清楚,但大多数情况下python代码往往会运行&#34;™所以真正的解决方案是尝试使用版本 s <的代码/你需要交给你的python。

答案 1 :(得分:0)

您可以参考官方文档:Python Docs

我假设你有一个用于 Python 3.x 的IDE,你可以尝试这段代码。
如Steve所述,您可以使用python(x)的print函数进行区分。

print "hello world"

因此,如果代码中有print语句(如上所述),您将获得:

SyntaxError: Missing parentheses in call to 'print'.

因此,这段代码用于 2.x python