python yield關鍵詞案例測試
更新時間:2019年10月15日 14:26:08 作者:授客
這篇文章主要介紹了python yield關鍵詞案例測試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
測試環(huán)境
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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
pytorch中torch.max和Tensor.view函數用法詳解
今天小編就為大家分享一篇pytorch中torch.max和Tensor.view函數用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python 用opencv實現(xiàn)圖像修復和圖像金字塔
這篇文章主要介紹了python 如何用opencv實現(xiàn)圖像修復和圖像金字塔,幫助大家更好的理解和使用python處理圖片,感興趣的朋友可以了解下2020-11-11
Python虛擬環(huán)境virtualenv是如何使用的
今天給大家?guī)淼氖顷P于Python虛擬環(huán)境的相關知識,文章圍繞著Python虛擬環(huán)境virtualenv是如何使用的展開,文中有非常詳細的解釋及代碼示例,需要的朋友可以參考下2021-06-06

