3-2 如何实现可迭代对象和迭代器对象(2) BookIterable/BookIterator
实现BookIterable/BookIterator
BookIterable 实现iter 返回BookIterator 迭代器对象
BookIterator 通过next函数每个元素的具体的内容(书的历史最低价和最高价)
from collections import Iterable
from collections import Iterator
from random import randint
class BookIterator(Iterator):
def __init__(self,books):
self.books = books
self.index = 0
def getBookPrice(self,book):
return book,randint(1,50),randint(60,100)
def next(self):
if self.index == len(self.books):
raise StopIteration
book = self.books[self.index]
self.index += 1
return self.getBookPrice(book)
class BookIterable(Iterable):
def __init__(self,books):
self.books = books
def __iter__(self):
return BookIterator(self.books)
if __name__ == '__main__':
for book in sorted(BookIterable(['chinse','math','english'])):
print book
获取天气情况
def getWeather(self,city):
r=requests.get(u'http://wthrcdn.etouch.cn/weather_mini?city='+city)
print r.text
data=r.json()['data']['forecast'][0]
return '%s: %s,%s'%(city,data['low'],data['high'])