python中的yield使用方法

yipeiwu_com5年前Python基础

今天在看其他同事的代码时,发现一个没使用过的python关键字 :yield

      先问了一下同事,听他说了几句,有个模糊的印象,仅仅是模糊而已。于是自己去搜搜资料看。看了半天,逐渐清晰了。不过在工作机制以及应用上还是有点迷茫。嗯,先把初始接触的印象记下来吧。

      yield 简单说来就是一个生成器(Generator)。生成器是这样一个函数:它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。

      你看到某个函数包含了yield,这意味着这个函数已经是一个Generator,它的执行会和其他普通的函数有很多不同。

      可能看到这里还是迷迷糊糊,先看一些实例吧:

复制代码 代码如下:

      def test( data_list ):

            for x in data_list:

                 yield x + 1

      data = [1,2,3,4]

      for y in test( data ):

           print y


      则输出结果为:

      2       3       4        5

      另外一种用法:

      handle = test(data)

      handle.next()     输出  2

      handle.next()     输出  3

      handle.next()     输出  4

      handle.next()     输出  5

      handle.next()     则会报错

      这只是 yield 的初步印象,接下来慢慢摸索吧。

相关文章

tensorflow输出权重值和偏差的方法

使用tensorflow 训练模型时,我们可以使用 tensorflow自带的 Save模块 tf.train.Saver()来保存模型,使用方式很简单 就是在训练完模型后,调用save...

举例讲解Python中metaclass元类的创建与使用

举例讲解Python中metaclass元类的创建与使用

元类是可以让你定义某些类是如何被创建的。从根本上说,赋予你如何创建类的控制权。 元类也是一个类,是一个type类。   元类一般用于创建类。在执行类定义时,解释器必须要知道这个...

python 获取页面表格数据存放到csv中的方法

获取单独一个table,代码如下: #!/usr/bin/env python3 # _*_ coding=utf-8 _*_ import csv from urllib.requ...

Python实现的单向循环链表功能示例

Python实现的单向循环链表功能示例

本文实例讲述了Python实现的单向循环链表功能。分享给大家供大家参考,具体如下: 概述: 单向循环链表是指在单链表的基础上,表的最后一个元素指向链表头结点,不再是为空。 由图可知,单...

Python使用微信接入图灵机器人过程解析

Python使用微信接入图灵机器人过程解析

这篇文章主要介绍了Python使用微信接入图灵机器人过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.wxpy库介绍 wx...