__iter__()与iter()、__next__()与next()是否相同?差异场景解析
关于
__iter__()/iter()和__next__()/next()的差异疑问 我在测试中发现,使用__iter__()和iter()、__next__()和next()得到的输出完全一致,示例代码如下:
1. __iter__() 和 iter() 的测试
l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] newl1 = map((lambda x: x*x*x), l1) newl1 = newl1.__iter__() print(newl1) print(type(newl1))
上述代码输出为:
<map object at 0x000001DF03D37B50> <class 'map'>
l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] newl1 = map((lambda x: x*x*x), l1) newl1 = iter(newl1) print(newl1) print(type(newl1))
上述代码输出同样为:
<map object at 0x000002129AD37B50> <class 'map'>
2. __next__() 和 next() 的测试
l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] newl1 = map((lambda x: x*x*x), l1) newl1 = newl1.__next__() print(newl1) print(type(newl1))
上述代码输出为:
1 <class 'int'>
l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] newl1 = map((lambda x: x*x*x), l1) newl1 = next(newl1) print(newl1) print(type(newl1))
上述代码输出同样为:
1 <class 'int'>
我想知道这两组方法是否完全相同?如果不同,它们各自的专属使用场景是什么,哪些情况下二者不能互换?我查阅了官方文档、ChatGPT及Stack Overflow的相关问题,均未找到满意答案,恳请解答。
内容的提问来源于stack exchange,提问作者IRON MAN
相关产品推荐
相关产品推荐

