Python中pass,python pass的用法

  Python中pass,python pass的用法

  在看别人的python源代码时偶然发现了yield这个关键词,经过各种搜索终于明白了。总结如下:

  在普通的for…In…循环中,in后面有一个数组。这个数组是一个可重复的对象。还有链表、字符串、文件。它可以是我的清单。

  =[ 1,2,3],mylist=[x*x for x in range(3()]就可以。它的缺点是所有的数据都存在内存中,如果数据量大,会非常消耗内存。

  生成器可以重复,但只能读取一次。因为只有在使用的时候才会产生。例如mygenerator=(x*xforxin

  请注意范围(3)(此处))。不是数组。上面的例子是[]。

  我理解生成器可以重复的关键是下一个方法。它的工作方式是反复调用next))方法,直到一个异常被捕获。你可以在上面的我的生成器中测试它。

  有yield的函数不再是普通的函数,而是生成器,可以用来迭代。结构是一样的。

  收益就像回报。

  的关键字。当遇到yield时,将返回yield后的值。关键是在下一次迭代中,会执行上一次迭代中遇到的yield之后的代码。

  很好理解:yield指的是返回值,记住返回的位置。下一次迭代从这个位置开始。

  带yield的函数不仅可以用于循环,也可以用于函数参数,只要函数参数允许参数迭代。例如,array.extend函数的原型是array.extend(iterable)。

  send(msg)和next)的区别在于,send可以向yield表达式传递参数,传递的参数是yield表达式的值,yield参数是返回给调用者的值。3354换句话说,send可以强制修改最后一个yield表达式的值。例如,函数有一个产量赋值

  =yield 5,初始迭代在这里返回5,A还没有赋值。在第二次迭代中。使用send(10)。然后将yield 5表达式的值强制修改为10,如果原来是5,那么a=10。

  send(msg)和next)的返回值是当前迭代遇到yield后表达式的值。其实这是当前迭代的yield之后的参数。

  在第一次调用中,next(或send) None)必须首先。否则,将会报告一个错误。之后,send变为None,因为没有以前的yield(根据第8条,此时为)。你可以认为next (is send) none)是等价的。

  Yield只是一个生成器。生成器是一个函数,用于记住它最后一次返回时在函数体中的位置。对生成器函数的第二次或第n次调用将跳转到函数的中间,最后调用的所有局部变量将保持不变。

  生成器是一个函数,

  该函数的所有参数都将被保留。

  第二次调用这个函数时,

  上次保留了的参数。

  生成器还“记住”流控制的结构。

  生成器不仅“记住”数据的状态。生成器还“记住”流控制结构中的位置(在基于指令的编程中,这种结构不仅仅是数据值)。连续性是常见的,因为它允许您在执行帧之间自由跳转,而不是像生成器一样直接返回调用上下文。

  产量发生器的工作原理

  当专心杯向发电机索要数量时,发电机就会一直运转,直到产量报表出现。生成器传递yield参数。然后,生成器停止执行。当专心杯向他要下一个量时,他会从上一个状态开始执行,直到yield语句出现,传递参数,然后停止。直到重复功能结束。

  示例:Python数组,复合生成器

  生成所有排列定义(项,n=无):

  ifnisNone:

  n=贷款(项目)

  Foriinrange(Len)项目):

  v=项目[i:i 1]

  ifn==1:

  yieldv

  否则:

  rest=items [ : I ] items [ I 1: ]

  forpinperm(其余,n-1):

  yieldv p

  生成复合定义组合(项目,n=无):

  ifnisNone:

  n=贷款(项目)

  Foriinrange(Len)项目):

  v=项目[i:i 1]

  ifn==1:

  yieldv

  否则:

  rest=items[i 1:]

  forcincomb(其余,n-1):

  yieldv c

  a=perm(ABC)).

  forbina:

  打印b

  黑色

  打印- * 20

  forbina:

  打印b

  结果是102 PV OPF 006 ~ ~/测试。/generator.py。

  哥伦比亚广播系统(CBS)

  -

  自动对比度平衡

  二进制-模拟转换(binary analogue convert的缩写)

  贝卡

  驾驶室

  中国篮球协会

  可以看出,第一个周期中断后,发电机不会继续运行,而是在第一个周期后执行第二个周期。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: