av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯Python教程:Python之可迭代對象、迭代器、生成器

創(chuàng)新互聯專注于網站建設|成都網站改版|優(yōu)化|托管以及網絡推廣,積累了大量的網站設計與制作經驗,為許多企業(yè)提供了網站定制設計服務,案例作品覆蓋成都垃圾桶等行業(yè)。能根據企業(yè)所處的行業(yè)與銷售的產品,結合品牌形象的塑造,量身策劃品質網站。

python可迭代對象(Iterable) 

Python中經常使用for來對某個對象進行遍歷,此時被遍歷的這個對象就是可迭代對象,像常見的list,tuple都是。如果給一個準確的定義的話,就是只要它定義了可以返回一個迭代器的__iter__方法,或者定義了可以支持下標索引的__getitem__方法,那么它就是一個可迭代對象。

Python迭代器(iterator) 

迭代器是通過next()來實現的,每調用一次他就會返回下一個元素,當沒有下一個元素的時候返回一個StopIteration異常,所以實際上定義了這個方法的都算是迭代器??梢杂猛ㄟ^下面例子來體驗一下迭代器:

生成器(Generators) 

生成器是構造迭代器的最簡單有力的工具,與普通函數不同的只有在返回一個值的時候使用yield來替代return,然后yield會自動構建好next()和iter()

因為迭代器如此普遍,python專門為for關鍵字做了迭代器的語法糖。在for循環(huán)中,Python將自動調用工廠函數iter()獲得迭代器,自動調用next()獲取元素,還完成了檢查StopIteration異常的工作。

相關推薦:《Python視頻教程》

定義迭代器 

下面一個例子——斐波那契數列

# -*- coding: cp936 -*-
class Fabs(object):
    def __init__(self,max):
        self.max = max
        self.n, self.a, self.b = 0, 0, 1  #特別指出:第0項是0,第1項是第一個1.整個數列從1開始
    def __iter__(self):
        return self
    def next(self):
        if self.n < self.max:
            r = self.b
            self.a, self.b = self.b, self.a + self.b
            self.n = self.n + 1
            return r
        raise StopIteration()

print Fabs(5)
for key in Fabs(5):
    print key

結果

<__main__.Fabs object at 0x01A63090>
1
1
2
3
5

新聞標題:創(chuàng)新互聯Python教程:Python之可迭代對象、迭代器、生成器
鏈接地址:http://uogjgqi.cn/article/djeisch.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流