编程语言
首页 > 编程语言> > python中的循环和迭代

python中的循环和迭代

作者:互联网

在Python语法中如果用for-in循环,那么就要使用迭代器协议,只要对象支持__iter__和__next__双下划线方法,那么就能够使用for-in循环。

 1 class RepeaterIterator:
 2     def __init__(self, source):
 3         self.source = source
 4 
 5     def __next__(self):
 6         return self.source.value
 7 
 8 
 9 class Repeater:
10     def __init__(self, value):
11         self.value = value
12 
13     def __iter__(self):
14         return RepeaterIterator(self)
15 
16 
17 repeater = Repeater('Hello')
18 for item in repeater:
19     print(item)

上面的代码会在控制台循环打印"hello".

上面的for-in那一段代码可以展开成下面的但是效果相同的代码:

1 repeater=Repeater('Hello')
2 iterator = repeater.__iter__()
3 while True:
4     item = iterator.__next__()
5     print(item)

从上面可以看出,for-in只是简单的while循环的语法糖。

 

标签:__,repeater,迭代,python,self,value,source,循环
来源: https://www.cnblogs.com/xiebinbbb/p/13952167.html