gpt4 book ai didi

python - 名称错误 : global name 'xrange' is not defined in Python 3

转载 作者:IT老高 更新时间:2023-10-28 12:11:48 37 4
gpt4 key购买 nike

运行 python 程序时出现错误:

Traceback (most recent call last):
File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 110, in <module>
File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 27, in __init__
File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\class\inventory.py", line 17, in __init__
builtins.NameError: global name 'xrange' is not defined

游戏来自here .

是什么导致了这个错误?

最佳答案

您正在尝试使用 Python 3 运行 Python 2 代码库。xrange()更名为 range()在 Python 3 中。

改为使用 Python 2 运行游戏。除非您知道自己在做什么,否则不要尝试移植它,很可能除了 xrange()range() 之外还有更多问题。

为了记录,您看到的不是语法错误,而是运行时异常。


如果您确实知道自己在做什么并且正在积极制作与 Python 3 兼容的 Python 2 代码库,则可以通过将全局名称添加到模块作为 range 的别名来桥接代码。 (考虑到您可能必须使用 list(range(...)) range() 以确保您仍然在 Python 3 中获得列表对象):

try:
# Python 2
xrange
except NameError:
# Python 3, xrange is now named range
xrange = range

# Python 2 code that uses xrange(...) unchanged, and any
# range(...) replaced with list(range(...))

或在代码库中将 xrange(...) 的所有用法替换为 range(...),然后使用不同的 shim 来制作 Python 3 语法与 Python 2 兼容:

try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass

# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).

从长远来看,后者更适合那些希望兼容 Python 3 的代码库,因此尽可能使用 Python 3 语法会更容易。

关于python - 名称错误 : global name 'xrange' is not defined in Python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17192158/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com