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


猜你喜欢
- 在工控应用上,返回的数据经常会以二进制的形成存储,而这些二进制数据又是以每4个bit表示一个十六进制的数据内容。解析的时候,往往是一个字节(
- Golang多线程刷票的实现代码直接用Go语言来写下刷票。package mainimport ("fmt" "
- 导语暗恋让人受尽委屈!一开始,你是我的秘密,我怕你知道,又怕你不知道,又怕你知道装作不知道!这大概就是暗恋的感受吧,可若是双向奔赴,那简更是
- python 3.4.3 的版本中已经没有cmp函数,被operator模块代替,在交互模式下使用时,需要导入模块。在没有导入模块情况下,会
- Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59
- 我页面上有控制了只能输入数字的控件,禁止了输入法切换的,但是搜狗的云输入却控制不了,有没有办法在页面里面禁止它运行啊?发现这玩意儿真的很讨厌
- 代码如下:var obj = document.getElementById("name"
- 1、序列(拆包)*用作序列拆包:*可对字符串、列表、集合、元组、字典、数字元素等序列进行拆包print(*(1,2,3,4,5,6))#1
- 光的干涉干涉即两束光在叠加过程中出现的强度周期性变化情况,其最简单的案例即为杨氏双缝干涉。如图所示,光从 S S S点发出,通过两个狭缝 S
- 1.数据库约束约束是关系型数据库提供的一种校验数据合法性的机制. 1.1 约束类型约束类型说明示例null使用not null 指
- 本文实例讲述了python类继承与子类实例初始化用法。分享给大家供大家参考。具体分析如下:[ 先贴参考书籍原文(中文英文对照)]__init
- 前言新手程序员大概有如下特点if嵌套经常超过3层、经常出现重复代码、单个函数代码特别长。只会crud,对语言特性和语言的边界不了解。不懂面向
- 用法分析 在查看SRGAN源码时有如下损失函数,其中设置了retain_graph=True,其作用是什么?################
- Erase语句:重新初始化固定数组的元素,并释放动态数组的存储空间。用法: Era
- 本文实例讲述了Python爬虫实现“盗取”微信好友信息的方法。分享给大家供大家参考,具体如下:刚起床,闲来无聊,找点事做,看了朋友圈一篇爬取
- 数字列表和其他列表类似,但是有一些函数可以使数字列表的操作更高效。我们创建一个包含10个数字的列表,看看能做哪些工作吧。# Print ou
- 本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能。分享给大家供大家参考,具体如下:由于目前工作
- 1. RS.OPEN SQL,CONN,A,B,C2. CONN.EXECUTE(SQL,RowsAffected,C)参数含义:SQL的值
- <?php//所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储
- 本文实例为大家分享了python实现自主查询实时天气的具体代码,供大家参考,具体内容如下用到了urllib2 json 很简单的