如何實現可迭代物件和迭代器物件 二

2021-08-04 06:31:32 字數 1333 閱讀 7548

之前我們介紹了可迭代物件和迭代器物件,現在我們就實現這兩個物件,滿足實際案例中的需求,解決方案如下:

實現乙個迭代器物件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迴圈的時候就是把元素從容器裡乙個個取出來,這種過程其實就是迭代。迭代器 迭代取值的工具。迭代器的作用...

物件 可迭代物件 迭代器

本節是對可迭代物件和迭代器的簡單總結,希望對大家有幫助。對於乙個初級選手而言,了解即可,不過這對大家以後高階可能會有一定的幫助。悅分享,越快樂。我們一起成長。哈啊哈哈。物件,乙個實實在在存在的值 可迭代 更新迭代,迴圈的乙個過程,每乙個內容都是新的 可迭代物件 可以進行迴圈更新的乙個實實在在的值。專...