根据版本更改内置Python
假设我有一个程序需要同时在Py2和Py3中运行。功能上的唯一区别是根据版本更改内置Python,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,假设我有一个程序需要同时在Py2和Py3中运行。功能上的唯一区别是range与xrange。有可能这样做吗 if version == 3: pass else: range = xrange 我知道我以前见过类似的东西,但是我似乎在谷歌机器上找不到一个例子。 谢谢各位 是的,您可以执行以下操作: import sys if sys.version_info.major > 2: xrange = range 另一种方法是将xrange语句包装在try/catch块中: >
range
与xrange
。有可能这样做吗
if version == 3: pass
else: range = xrange
我知道我以前见过类似的东西,但是我似乎在谷歌机器上找不到一个例子。
谢谢各位 是的,您可以执行以下操作:
import sys
if sys.version_info.major > 2:
xrange = range
另一种方法是将xrange
语句包装在try/catch块中:
>>> try:
... r = xrange(10)
... except NameError:
... # No xrange in Python3
... r = range(10)
是的,您可以执行以下操作:
import sys
if sys.version_info.major > 2:
xrange = range
另一种方法是将xrange
语句包装在try/catch块中:
>>> try:
... r = xrange(10)
... except NameError:
... # No xrange in Python3
... r = range(10)
您可以使用
sys.version\u info
。这是一个包含版本号的元组,因此类似的内容应该可以工作:
import sys
if sys.version_info[0] < 3:
range = xrange
导入系统
如果系统版本信息[0]<3:
范围=X范围
如果您需要对版本(次要编号)进行更精确的控制,您可以使用给出版本第一个和第二个编号的
major/minor
,或者简单地使用sys.version\u info[:2]
,这是一个元组,可以与=,>=,…
结合使用sys.version\u info
。这是一个包含版本号的元组,因此类似的内容应该可以工作:
import sys
if sys.version_info[0] < 3:
range = xrange
导入系统
如果系统版本信息[0]<3:
范围=X范围
如果您需要对版本(次要编号)进行更精确的控制,您可以使用给出版本第一个和第二个编号的
major/minor
,或者简单地使用sys.version\u info[:2]
,这是一个元组,可以与=,>=,如果要手动执行,请检查sys.version\u info
tuple。谷歌搜索six
,python future
或nine
,搜索旨在解决此问题的第三方库。如果range为None:range=xrange
由于编译时间的增加,我最喜欢你的答案。如果你想手动操作,请检查sys.version\u info
tuple。谷歌搜索six
,python future
或nine
,搜索旨在解决此问题的第三方库。如果range为None:range=xrange
由于编译时间的增加,我最喜欢你的答案。