如何在 Python 3 中启用 xrange 以实现可移植性?
How can I enable xrange in Python 3 for portability?
我写了一个脚本,我想为 Python 2 和 Python 3 启用。
从 __future__
导入 division
和 print_function
后,我唯一担心的是 range
returns Python 中的整个数组2、浪费时间和记忆。
我在脚本的开头添加了以下 3 行,作为解决方法:
if sys.version_info[0] == 3:
def xrange(i):
return range(i)
然后,我在代码中只使用了xrange
。
有没有比我的解决方法更优雅的方法?
你可以稍微简化一下:
if sys.version_info[0] == 3:
xrange = range
我会反过来做:
if sys.version_info[0] == 2:
range = xrange
如果您想放弃 Python 2.x 支持,您只需删除这两行即可,而无需检查所有代码。
不过,我强烈建议考虑six
library。它是实现 Python 2 和 3 兼容性的实际标准。
from six.moves import range
我写了一个脚本,我想为 Python 2 和 Python 3 启用。
从 __future__
导入 division
和 print_function
后,我唯一担心的是 range
returns Python 中的整个数组2、浪费时间和记忆。
我在脚本的开头添加了以下 3 行,作为解决方法:
if sys.version_info[0] == 3:
def xrange(i):
return range(i)
然后,我在代码中只使用了xrange
。
有没有比我的解决方法更优雅的方法?
你可以稍微简化一下:
if sys.version_info[0] == 3:
xrange = range
我会反过来做:
if sys.version_info[0] == 2:
range = xrange
如果您想放弃 Python 2.x 支持,您只需删除这两行即可,而无需检查所有代码。
不过,我强烈建议考虑six
library。它是实现 Python 2 和 3 兼容性的实际标准。
from six.moves import range