首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python 3上将条件引用设置为range,在Python 2上设置xrange

如何在Python 3上将条件引用设置为range,在Python 2上设置xrange
EN

Stack Overflow用户
提问于 2018-12-26 15:25:16
回答 3查看 259关注 0票数 0

我有一个python-3代码,我希望能够兼容python-2和python-3,尽可能地保留代码。我想使用范围的迭代行为(对许多项进行迭代)。

为了得到一个迭代器

  • python-2使用xrange(N)
  • python-3使用range(N)

怎样才能使它成为python2的迭代器,并且尽可能少的修改呢?

看看此链接,它为range和xrange提供了几种方法,但无法使其工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-26 15:31:40

把这个放在节目开始的地方。

代码语言:javascript
运行
复制
import sys
import builtins

if sys.version_info[0] == 2:
    range = xrange

a = range(100)  # Keep your Python 3 code unchanged
票数 3
EN

Stack Overflow用户

发布于 2018-12-26 15:30:06

代码语言:javascript
运行
复制
try:
    n_range = xrange
except NameError:
    n_range = range

我们可以将n_range设置为xrange,如果它失败,则将其设置为range。

票数 0
EN

Stack Overflow用户

发布于 2018-12-26 15:32:19

您可以在运行时检测python的版本:

代码语言:javascript
运行
复制
from sys import version_info
if version_info[0] < 3:
    range = xrange

这将覆盖python 2中的常规范围行为,因此确保代码不使用python 2范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53933948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档