python yield关键词案例测试
作者:授客 发布时间:2021-02-07 03:14:07
标签:python,yield,关键词
测试环境
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)
来源:https://www.cnblogs.com/shouke/p/11676978.html
0
投稿
猜你喜欢
- 英国著名学者李约瑟早在100多年前就疑惑:为什么中国的科技在唐宋时代就已领先西方,却在明清时代落后下来。对此,人们一向认为这主要是儒家思想的
- 为庆祝jQuery的四周年生日,jQuery官方团队正式发布了jQuery 1.4版本。在这个版本中,jQuery官方团队做了大量的编码、测
- 代码如下:create proc p_sword_getblcolumn ( @tblN
- Python提供了一个内联模块buildin,该模块定义了一些软件开发中经常用到的函数,利用这些函数可以实现数据类型的转换、数据的计算、序列
- <?php function getDerivativeByFormulaAndXDATA($formula, $x_data){ $
- 用js限制网页只在微信浏览器中打开js代码一$(function(){//判断页面是否是在微信浏览器打开//对浏览器的UserAgent进行
- 本文实例为大家分享了python实现转圈打印矩阵的具体代码,供大家参考,具体内容如下#! conding:utf-8__author__ =
- 前言为了满足用户渠道推广分析和用户账号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用
- 这本入门手册是否合适你?我只想告诉你我非常喜欢这本书。我对Microsoft Access的经验足以让我跳过这本傻瓜系列教材,但是实际情况是
- Jabob Nielsen提出的10个可用性原则中有一个原则-防止出错(Error Prevention)。官网中有对这一原则的具体解释,这
- 关于这个话题,我也看到网上有其他方法来解决。 不过从性能和代码量上来看,我有更好的办法。 在这里和大家 分享。 原理其实很简单, 知识1、长
- 本文实例讲述了Python装饰器用法与知识点。分享给大家供大家参考,具体如下:(1)装饰器含参数,被装饰函数不含(含)参数实例代码如下:im
- Set objTextStream=FileSystemObject.CreateTextFile(Filename,[Overwrite]
- 一般我们可以使用背景图的方式给图片添加阴影,但对于不固定尺寸的图片如何实现呢?我们可以采取“视觉欺骗 * ”——定义渐变边框来实现运行代码框&
- 这篇文章主要从基本情况、成本、优缺点和应用场合等方面对5种MySQL的可靠性方案进行了详细的分析和比较,另外,本文对MySQL数据库的开发和
- 是的,这仅仅是一个PPT文档,由Anna Debenham上传至slideshare。幻灯片的标题叫做《CSS nuggets》,嗯,很好的
- 在平时,常常会提醒自己要做一个善于发现的人,时刻发现细节,这样才会更加懂得生活、会让生活更加精彩。在学习上也是如此,我们常常会发现有很多网站
- 做教育业的网站,会将此遇到这个问题:如何在网页上显示音标?音标为什么显示为乱字符?等等类似的问题。前两天做沪江网某英语页面的时候也碰到了这个
- 原理:自定义javascript中的oncontextmenu事件,然后使用div层模拟菜单。知道了这个原理结合美工相信你可以做出很漂亮的自
- SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里就讲讲我运用扩展函