我试图next在迭代器上使用该函数,但是,我在同一范围内有一个也被命名的局部变量next.显而易见的解决方案是重命名局部变量,但是,我对Python很新,所以我很想学习如何为next函数添加前缀,以便实现所需的行为.
我正在使用的代码看起来像这样:
for prev, curr, next in neighborhood(list):
if (prev == desired_value):
print(prev+" "+next)
desired_value = next(value_iterator)
Run Code Online (Sandbox Code Playgroud)
请注意,我使用的是Python 3.2.
Mar*_*ers 10
您可以使用它__builtins__.next来引用next内置函数.
for prev, curr, next in neighborhood(list):
if (prev == desired_value):
print(prev+" "+next)
desired_value = __builtins__.next(value_iterator)
Run Code Online (Sandbox Code Playgroud)
但是,正如您所指出的,显而易见的解决方案是为变量使用不同的名称.
您可以next()直接调用迭代器的方法.但是,您失去StopIteration了在迭代结束时抑制的能力,有利于查看默认值.
desired_value = value_iterator.next()
Run Code Online (Sandbox Code Playgroud)
请注意,在Python 3中,此方法已重命名__next__().