python---写一个迭代器

# 迭代器
class House(object):
    # 属性初始化
    def __init__(self, room):
        self.room = room  # 当前调用对象
        self.people = []  # 对象下所有的数据,用列表保存
        self.current_index = 0  # 当前遍历到的列表下标

    # 添加方法
    def add_person(self, person):
        self.people.append(person)

    # iter方法,并返回一个迭代器
    def __iter__(self):
        return self

    # next方法,返回当前记录的所在下标及相应数据
    def __next__(self):
        if self.current_index < len(self.people):
            current_data = self.people[self.current_index]
            self.current_index += 1
            return current_data
        else:
            self.current_index = 0
            raise StopIteration


def main():
    """一个可迭代对象同时又是迭代器"""
    # 创建一个类对象
    bedroom = House('bedroom')

    # 适用对象可以添加数据
    bedroom.add_person('xiaoli')
    bedroom.add_person('maomao')
    # 使用for遍历该对象
    for person in bedroom:
        print(person)

if __name__ == '__main__':
    main()

你可能感兴趣的:(python初级学习)