您当前的位置: 首页 >  Python

python编程:迭代对象、Iterator迭代器、生成器

彭世瑜 发布时间:2018-05-23 15:08:07 ,浏览量:3

迭代器:例如 列表

迭代器模式 提供了一种方法能够顺序访问集合中的所有元素,而又不暴露集合内部的实现

迭代器的本质是实现了一种方式: 能够判断集合中是否还有未被访问的元素,以及提供访问这个元素的方式

代码实例
# -*- coding: utf-8 -*-

# @File    : 迭代器模式.py
# @Date    : 2018-05-23

from abc import abstractmethod

# 定义迭代器
# 实现了两个方法,是否还有未被访问的元素和下一个未被访问的元素
class Iterator(object):
    def __init__(self):
        pass

    @abstractmethod
    def has_next(self):
        pass

    @abstractmethod
    def next(self):
        pass


# 一个书架上摆满了书,我们需要查找某本书时,就用到了迭代器模式
# 定义书本, 名称和编号
class Book(object):
    def __init__(self, name, number):
        self.name = name
        self.number = number


# 书架定义
# 书架实现了增加书目,查找index位置的数目以及总共的图书数目这几个方法
class BookShelf(object):
    def __init__(self):
        self.books = []

    def append_book(self, book):
        self.books.append(book)

    def get_book_at(self, index):
        return self.books[index]

    def get_length(self):
        return self.books.__len__()


# Iterator的具体实现
class BookShelfIterator(Iterator):
    def __init__(self, book_shelf):
        self.book_shelf = book_shelf
        self.index = 0

    def has_next(self):
        if self.index             
关注
打赏
1688896170
查看更多评论
0.0500s