python yield关键词案例测试
作者:授客 时间:2021-02-07 03:14:07
测试环境
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
标签:python,yield,关键词


猜你喜欢
网站有效设计的10个原则
2008-02-11 17:12:00

laravel实现简单用户权限的示例代码
2023-11-14 11:58:29
SQL Server数据库管理常用SQL和T-SQL语句
2009-05-07 14:01:00
python中map、any、all函数用法分析
2021-09-02 15:25:45
ubuntu环境下python虚拟环境的安装过程
2022-07-25 06:09:07
Python使用5行代码批量做小姐姐的素描图
2023-09-27 09:53:04

python pands实现execl转csv 并修改csv指定列的方法
2022-11-20 01:45:27
Python3爬取英雄联盟英雄皮肤大图实例代码
2022-05-20 23:40:55

js获取上传文件大小示例代码
2024-04-22 22:35:02
PHP取整函数:ceil,floor,round,intval的区别详细解析
2023-11-17 18:30:33
python制作简单五子棋游戏
2021-09-13 06:49:47
OpenCV学习之图像加噪与滤波的实现详解
2022-09-20 04:40:57

javascript浮点数计算的bug
2009-12-06 11:43:00
Python合并字符串的3种方法
2021-08-13 00:33:33
MySQL InnoDB ReplicaSet(副本集)简单介绍
2024-01-20 11:10:45
vue中 $forceUpdate的使用解析
2024-06-05 09:15:18
mysql查找删除表中重复数据方法总结
2024-01-19 01:53:49

Sql server中的char、varchar、text和nchar、nvarchar、ntext的区别
2011-08-14 09:43:44
python多线程超详细详解
2023-08-09 09:10:23
sql server 2008 压缩备份数据库(20g)
2024-01-15 09:23:41
