欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中Genarator函數(shù)用法分析

 更新時間:2015年04月08日 10:54:57   作者:pythoner  
這篇文章主要介紹了python中Genarator函數(shù)用法,實例分析了Genarator函數(shù)的使用原理與相關(guān)技巧,需要的朋友可以參考下

本文實例講述了python中Genarator函數(shù)用法。分享給大家供大家參考。具體如下:

Generator函數(shù)的定義與普通函數(shù)的定義沒有什么區(qū)別,只是在函數(shù)體內(nèi)使用yield生成數(shù)據(jù)項即可。Generator函數(shù)可以被for循環(huán)遍歷,而且可以通過next()方法獲得yield生成的數(shù)據(jù)項。

def func(n): 
  for i in range(n):
    yield i 
for i in func(3):
  print i 
r=func(3) 
print r.next() 
print r.next() 
print r.next() 
print r.next()

運行結(jié)果如下:

0
1
2
0
1
2
Traceback (most recent call last):
 File "generator.py", line 10, in <module>
  print r.next()
StopIteration

yield保留字與return 語句的返回值和執(zhí)行原理都不相同。yield生成值并不會中止程序的執(zhí)行,返回值后程序繼續(xù)往后執(zhí)行。return 返回值后,程序?qū)⒅兄箞?zhí)行。

Generator函數(shù)一次只返回一個數(shù)據(jù)項,占用更少的內(nèi)存。每次生成數(shù)據(jù)都要記錄當前的狀態(tài),便于下一次生成數(shù)據(jù)。

當程序需要較高的性能或一次只需要一個值進行處理時,使用generator函數(shù)。當需要獲取一次性一組元素的值時,使用序列。

函數(shù)里只要有了yield,這個函數(shù)就會被編譯成一個generator 函數(shù)。generator函數(shù)object支持python iterator protocol。 每次調(diào)用這個對象的next,generator函數(shù)就執(zhí)行到y(tǒng)ield,獲取到y(tǒng)ield生成的值。如果函數(shù)返回,就拋出一個異常。這里有個概念就是generator 函數(shù)使用yield生成一個值,而不是返回一個值。生成之后函數(shù)還沒結(jié)束,返回了函數(shù)就結(jié)束了。

>>> x = gensquares(5)
>>> print x
<generator object at 0x00B72D78>
>>> print x.next()
0
>>> print x.next()
1
>>> print x.next()
4
>>> print x.next()
9
>>> print x.next()
16
>>> print x.next()
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
StopIteration
>>>

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python @property的用法及含義全面解析

    python @property的用法及含義全面解析

    下面小編就為大家分享一篇python @property的用法及含義全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲

    零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲

    前面的文章我們介紹了Python爬蟲框架Scrapy的安裝與配置等基本資料,本文我們就來看看如何使用Scrapy框架方便快捷的抓取一個網(wǎng)站的內(nèi)容,隨便選個小站(dmoz.org)來示例吧
    2014-11-11
  • Python的Django中將文件上傳至七牛云存儲的代碼分享

    Python的Django中將文件上傳至七牛云存儲的代碼分享

    七牛云存儲可以幫助服務(wù)器轉(zhuǎn)存圖片等數(shù)據(jù),類似于Dropbox等存儲服務(wù),這里就帶給大家Python的Django中將文件上傳至七牛云存儲的代碼分享,需要的朋友可以參考下
    2016-06-06
  • 用Python編寫一個簡單的Lisp解釋器的教程

    用Python編寫一個簡單的Lisp解釋器的教程

    這篇文章主要介紹了用Python編寫一個簡單的Lisp解釋器的教程,Lisp是一種源碼簡單的函數(shù)式編程語言,本文主要介紹對其中的一個子集Scheme的解釋器開發(fā),需要的朋友可以參考下
    2015-04-04
  • Python 階乘詳解

    Python 階乘詳解

    這篇文章主要介紹了詳解用python的階乘,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-10-10
  • Python強化練習之Tensorflow2 opp算法實現(xiàn)月球登陸器

    Python強化練習之Tensorflow2 opp算法實現(xiàn)月球登陸器

    在面向?qū)ο蟪霈F(xiàn)之前,我們采用的開發(fā)方法都是面向過程的編程(OPP)。面向過程的編程中最常用的一個分析方法是“功能分解”。我們會把用戶需求先分解成模塊,然后把模塊分解成大的功能,再把大的功能分解成小的功能,整個需求就是按照這樣的方式,最終分解成一個一個的函數(shù)
    2021-10-10
  • 在Python中用GDAL實現(xiàn)矢量對柵格的切割實例

    在Python中用GDAL實現(xiàn)矢量對柵格的切割實例

    這篇文章主要介紹了在Python中用GDAL實現(xiàn)矢量對柵格的切割實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python編程快速上手——Excel到CSV的轉(zhuǎn)換程序案例分析

    Python編程快速上手——Excel到CSV的轉(zhuǎn)換程序案例分析

    這篇文章主要介紹了Python Excel到CSV的轉(zhuǎn)換程序,結(jié)合具體案例形式分析了Python操作Excel到CSV轉(zhuǎn)換的操作技巧與相關(guān)注意事項,需要的朋友可以參考下
    2020-02-02
  • Django中ajax發(fā)送post請求 報403錯誤CSRF驗證失敗解決方案

    Django中ajax發(fā)送post請求 報403錯誤CSRF驗證失敗解決方案

    這篇文章主要介紹了Django中ajax發(fā)送post請求 報403錯誤CSRF驗證失敗解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • pytorch Variable與Tensor合并后 requires_grad()默認與修改方式

    pytorch Variable與Tensor合并后 requires_grad()默認與修改方式

    這篇文章主要介紹了pytorch Variable與Tensor合并后 requires_grad()默認與修改方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05

最新評論