之前我們介紹了可迭代物件和迭代器物件,現在我們就實現這兩個物件,滿足實際案例中的需求,解決方案如下:
實現乙個迭代器物件weatheriterator,next方法每次返回乙個城市的氣溫;
實現乙個可迭代物件weatheriterable,__iter__方法返回乙個迭代器物件。
**如下:
# -*- coding: utf-8 -*-
import requests
from collections import iterable, iterator
# 實現天氣的迭代器物件
class
weatheriterator
(iterator):
def__init__
(self, cities):
self.cities = cities
self.index = 0
defgetweather
(self, city):
r = requests.get(u'' + city)
data = r.json()['data']['forecast'][0]
return
'%s: %s, %s' % (city, data['low'], data['high'])
defnext
(self):
if self.index == len(self.cities):
raise stopiteration
city = self.cities[self.index]
self.index += 1
return self.getweather(city)
# 實現天氣的可迭代物件
class
weatheriterable
(iterable):
def__init__
(self, cities):
self.cities = cities
def__iter__
(self):
return weatheriterator(self.cities)
if __name__ == "__main__":
for x in weatheriterable([u'北京', u'上海', u'廣州', u'深圳']):
print x
其執行結果為:
北京: 低溫 23℃, 高溫 29℃
上海: 低溫 30℃, 高溫 40℃
廣州: 低溫 27℃, 高溫 33℃
深圳: 低溫 26℃, 高溫 31℃
問題8 9 如何實現可迭代物件和迭代器物件
一 通過可迭代物件和python內建函式iter 得到迭代器 即,iter 可迭代物件 得到乙個迭代器 例 list 1 1,2,3,4,5 1 iter 物件 若此物件想滿足迭代要求,其內部要有迭代介面或者乙個序列 iter 或者 getitm 2 迭代器只有乙個介面 next 呼叫next 時會...
迭代器 可迭代物件 迭代器物件
今天的學習內容有 迭代器 可迭代物件 迭代器物件 for迴圈內部原理 生成器和生成器表示式 面向過程程式設計 迭代就是指更新換代的過程,要重複進行,而且每次的迭代都必須基於上一次的結果。我們使用for迴圈的時候就是把元素從容器裡乙個個取出來,這種過程其實就是迭代。迭代器 迭代取值的工具。迭代器的作用...
物件 可迭代物件 迭代器
本節是對可迭代物件和迭代器的簡單總結,希望對大家有幫助。對於乙個初級選手而言,了解即可,不過這對大家以後高階可能會有一定的幫助。悅分享,越快樂。我們一起成長。哈啊哈哈。物件,乙個實實在在存在的值 可迭代 更新迭代,迴圈的乙個過程,每乙個內容都是新的 可迭代物件 可以進行迴圈更新的乙個實實在在的值。專...