zoukankan      html  css  js  c++  java
  • 生成器的简要概述

    生成器的简要概述

    在上一篇随笔中我们简单了解了一下迭代器,不过在python中,创建迭代器最好的技术就是使用生成器。生成器的语法实现类似于函数,但不返回值。为了显示序列中的每一个元素,会使用yield语句。比如我们来实现一下range的方法:

    def range(start = 0,stop = None,step = 1):
        if stop is None :      #判断输入了几个值
            start , stop = 0 , start
        if step > 0:           #判断stepd的符号
            while start < stop:
                yield start
                start += step
        elif step < 0:
            while start > stop:
                yield start
                start += step
    

    注意:我们使用关键字yield而不是return来表示结果,表明我们正在python中定义一个生成器,而不是传统函数。在同一实现中,将yieldreturn结合起来是非法的!return会导致生成器终止执行。

    在每次循环迭代中,python会执行生成器代码一个yield语句指出下一个值为止。在这一点上,该程序是暂时中断的,只有当另一个值被请求时才恢复。当控制流自然到达程序的末尾时(或碰到一个return)会自动抛出StopIteration异常。

  • 相关阅读:
    在jQuery中.bind() .live() .delegate() .on()的区别
    jquery小结测试题
    揭秘子类构造函数执行过程
    过滤器
    实现AJAX的基本步骤
    AJAX 原生态
    java工程师需要学什么
    Java进阶之路
    git入门大全
    轻松学JVM
  • 原文地址:https://www.cnblogs.com/Du704/p/11352906.html
Copyright © 2011-2022 走看看