python yield关键词案例测试


Posted in Python onOctober 15, 2019

测试环境

win10

python 3.5

yield功能简介

简单来说,yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator

代码演示

例子1: 输出斐波那契?盗星 N 个数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'shouke'
def fab(max):
  n, a, b = 0, 0, 1
  result = []
  while n < max:
    result.append(b)
    a, b = b, a + b
    n = n + 1
  return result
for n in fab(5):
  print(n)

以上代码虽然可以满足需求,但是存在的问题:该函数在运行中占用的内存会随着参数 max 的增大而增大,如果要控制内存占用,最好不要用 List

改进 使用yield

def fab(max):
  n, a, b = 0, 0, 1
  while n < max:
    yield b   # 使用 yield
    a, b = b, a + b
    n = n + 1
for n in fab(5):
  print(n)

例子2:读二进制方式取文件并生成文件副本

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'shouke'
def read_file(fpath):
  BLOCK_SIZE = 1024
  with open(fpath, 'rb') as f:
    while True:
      block = f.read(BLOCK_SIZE)
      if block:
        yield block
      else:
        return
with open('D:\Downloads\\channels-2.1.7-copy.tar.gz', 'wb') as f:
  for data in read_file('D:\Downloads\\channels-2.1.7.tar.gz'):
    f.write(data)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python程序语言快速上手教程
Jul 18 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
TensorFlow如何实现反向传播
Feb 06 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python简单实现AES加密和解密
Mar 28 Python
python导入坐标点的具体操作
May 10 Python
python模块和包的应用BASE_PATH使用解析
Dec 14 Python
Python unittest工作原理和使用过程解析
Feb 24 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
Python中三种花式打印的示例详解
Mar 19 Python
python 发送json数据操作实例分析
Oct 15 #Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 #Python
PYTHON绘制雷达图代码实例
Oct 15 #Python
利用Python产生加密表和解密表的实现方法
Oct 15 #Python
python多线程并发及测试框架案例
Oct 15 #Python
浅析PEP570新语法: 只接受位置参数
Oct 15 #Python
浅析PEP572: 海象运算符
Oct 15 #Python
You might like
PHP文件读取功能的应用实例
2015/05/08 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python实现将xml导入至excel
2015/11/20 Python
python DataFrame 取差集实例
2019/01/30 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
会计顶岗实习心得
2014/01/25 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
创新社会管理心得体会
2014/09/12 职场文书
工程承包协议书范本
2014/09/29 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
优秀员工推荐材料
2014/12/20 职场文书
三行辞职书范文
2015/02/26 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书