python yield 學習筆記

2021-07-09 01:56:06 字數 1043 閱讀 1118

學習yield之前,了解了迭代器, 生成器的概念。 沒有太多的細化。

迭代器物件: 支援iter和next()方法, 其中iter()方法返回迭代物件本身; next()方法返回容器的下乙個元素, 在結尾時印發stopiteration異常。

生成器是迭代器,但是只能遍歷一次。

yield返回的就是生成器。

看例項, 銀行生成器。

# -*- coding: utf-8 -*-

"""created on fri dec 18 13:30:07 2015

@author: weeds

"""class

bank

(): crisis = false

defcreate_atm

(self):

while

not self.crisis:

yield

"$100"

hsbc = bank()

corner_street_atm = hsbc.create_atm()

print corner_street_atm.next()

print corner_street_atm.next()

print [corner_street_atm.next() for cash in range(5)]

hsbc.crisis = true

#print corner_street_atm.next()

wall_street_atm = hsbc.create_atm()

#print wall_street_atm.next()

hsbc.crisis = false

print wall_street_atm.next()

print corner_street_atm.next()

print corner_street_atm.next()

最近看過一篇python效能優化的軟體, 多用yield.

參考文章

python yield 學習心得

請看yield基礎教程,菜鳥教程無論排版還是內容都是十分優秀的 對於小白來講太友好 看完之後你得到的結論 1 包含yield的函式是乙個生成器,能減少記憶體開銷。關鍵是能讓 清晰,簡明。2 包含yield的函式,其中的變數 上下文 在下次執行時,依然保留。看高階教程 雖然博主說他的文章最簡單,但是其...

python yield用法,簡單

學習python的過程過程彙總,經常會遇到yield,但是經常是懵逼的狀態,到底是怎麼用的,自己寫了乙個函式後就明白了,其實很簡單,看下面就懂了。函式中yield用法def yield tst n while n 20 yield 返回 遇到yield就返回yield後面的值,相當於return 返...

python yield 簡單理解

要想理解yield的概念,我們必須理解python中迭代器和生成器的概念與作用。1.迭代器 iterables python中可以直接作用於for迴圈的物件,比如 列表 元祖 字典 集合 字串等統稱為可迭代物件。迭代器是乙個實現了迭代器協議的物件,其可以呼叫next 方法得到下乙個結果,在結果末尾呼...