首页 新闻 会员 周边 捐助

for i in c: print(i) for循环是调用iter(),调用__next__()没有呀

0
[已关闭问题] 关闭于 2025-09-09 21:38

for 循环确实调用了 __next__(),但不是你显式写的,而是 Python 解释器在背后自动调用的。

for i in c:
     print(i)

Python 实际上在背后做了这些事:

_iter = iter(c)  # 调用 c.__iter__(),返回迭代器
while True:
    try:
        i = next(_iter)  # 调用 _iter.__next__()
    except StopIteration:
        break
    print(i)

你写的代码。              Python 实际做的事
`for i in c:`               `_iter = iter(c)`
隐含循环体。               `i = next(_iter)` ➜ 调用 `__next__()`
结束循环                      捕获 `StopIteration` 异常

_java_python的主页 _java_python | 小虾三级 | 园豆:984
提问于:2025-09-09 21:37
< >
分享
所有回答(1)
0

for 循环会自动调用 iter() 和 __next__(),只是你没看到而已。

_java_python | 园豆:984 (小虾三级) | 2025-09-09 21:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册