假设我有一个程序需要在Py 2和Py 3中运行。功能的唯一区别是range
vs xrange
。有可能做这样的事吗?
if version == 3: pass
else: range = xrange
我知道我之前看过这样的事情,但我似乎无法在Google机器上找到一个例子。 多谢你们。
答案 0 :(得分:1)
是的,您可以执行以下操作:
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)
答案 1 :(得分:1)
您可以使用sys.version_info
。这是一个包含版本号的元组,所以这样的东西应该可以工作:
import sys
if sys.version_info[0] < 3:
range = xrange
如果您需要对版本(次要编号)进行更精确的控制,您可以使用major/minor
来提供版本的第一个和第二个编号,或者只使用sys.version_info[:2]
这个元组可以与==, >=,...