看了很多解释,都是在拿迭代器,讲解可迭代对象,然后写写代码,就完了。完全不懂内部实现。
花了很久,终于找到内部实现了,也就是搞懂了,用 for 去遍历可迭代对象时,拿的数据到底在哪里。
class Add:
def __init__(self):
self.base = 0
def __iter__(self):
return self
def __next__(self):
self.base += 1
return self.base
谢了__iter__方法,便是指定了它是一个可迭代对象。
而__next__方法,便是产生可迭代数据的。
add1 = Add()
print(add1.__next__())
print(add1.__next__())
print(add1.__next__())
1
2
3
add2 = Add()
for i in add2:
if i > 10:
break
print(i)
1
2
3
4
5
6
7
8
9
10
本文深入探讨了Python中迭代器与可迭代对象的内部实现原理,通过具体示例解析了__iter__和__next__方法的作用,帮助读者掌握如何创建自定义的可迭代对象。
1494

被折叠的 条评论
为什么被折叠?



