gpt4 book ai didi

python - 为什么我的代码 'next()' 函数在这个例子中没有被调用?

转载 作者:行者123 更新时间:2023-12-01 00:00:03 25 4
gpt4 key购买 nike

class a(object):
w={'a':'aaa','b':'bbb'}
def __iter__(self):
return iter(self.w)
def next(self):#this is not be called
print 'sss'
for i in self.w:
return i

b=a()
for i in b:
print i

以及__iter__next函数之间的关系是什么。

谢谢

最佳答案

我不完全确定您在问什么,但是 next() 函数没有被调用,因为您从未显式调用它。您定义__iter__,当您这样做时它会被调用:

for i in b:

这应该隐式调用迭代器的 .next() 方法,但迭代器不是 a,而是 iter(self.w)。由于您的对象不是迭代器,因此永远不会调用其 next() 方法。

希望这有帮助。

关于python - 为什么我的代码 'next()' 函数在这个例子中没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1984184/

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