Python构造一个基本的Python迭代器【面试题详解】

今天爱分享给大家带来Python构造一个基本的Python迭代器【面试题详解】,希望能够帮助到大家。
python中的迭代器对象遵守迭代器协议,也就意味着python会提供两个方法:iter() 和 next().方法__iter__ 返回迭代器对象并且在循环开始时隐含调用.方法next()返回下一个值并且在每次循环中隐含调用.方法next()在没有任何值可返回时,抛出StopIteration异常.之后被循环构造器捕捉到而停止迭代.

下面是简单的计数器例子:


class Counter:
    def __init__(self, low, high):
        self.current = low
        self.high = high

    def __iter__(self):
        return self

    def next(self): # Python 3: def __next__(self)
        if self.current > self.high:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1


for c in Counter(3, 8):
    print c

输出:


3
4
5
6
7
8

使用生成器会更简单,包含了先前的回答:


def counter(low, high):
    current = low
    while current <= high:
        yield current
        current += 1

for c in counter(3, 8):
    print c

输出是一样的.本质上说,生成器对象支持迭代协议并且大致完成和计数器类相同的事情.

人已赞赏
Python

Python中**和*的作用是什么【面试题详解】

2020-12-28 16:01:46

Python

Python中*args和**kwargs是什么【面试题详解】

2020-12-28 16:05:25

'); })();