美文网首页
Python——生成器(2)

Python——生成器(2)

作者: coolzpw | 来源:发表于2017-06-03 12:08 被阅读14次

    生成器是一种特殊的迭代器,它不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束。

    为了从生成器获取下一个值,我们使用next()方法,也可以用for语句,就像使用迭代器一样对它

    def simple_generator_function():
          yield 1
          yield 2
          yield 3
    
    myGenerator = simple_generator_function()
    next(myGenerator)
    output :1
    next(myGenerator)
    ouput:2
    
    for value in  simple_generator_function():
          print(value)
    
    output:
    1
    2
    3
    
    
    

    在一个生成器中,如果没有return,则默认执行到函数完毕时返回StopIteration,如果遇到return,如果在执行过程中 return,则直接抛出 StopIteration 终止迭代。

    这里需要指出的是,凡是可作用于for循环的对象都是Iterable类型;凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

    相关文章

      网友评论

          本文标题:Python——生成器(2)

          本文链接:https://www.haomeiwen.com/subject/cvwpfxtx.html