python 迭代器 使用iiter()函数与next()函数实现(迭代器)

"""迭代器实现"""


class Classmate(object):
    def __init__(self):
        self.names = list()
        self.current_num = 0

    def add(self, name):
        self.names.append(name)

    # 有iter方法可以迭代
    def __iter__(self):
        """如果想要让一个对象成为一个 可迭代对象,即可以使用for,那么必须使用__iter__方法"""
        return self

    def __next__(self):
        if self.current_num < len(self.names):
            ret = self.names[self.current_num]
            self.current_num += 1
            return ret
        # 迭代结束,如果出现异常则不再迭代 抛出异常
        else:
            raise StopIteration


# 创建对象
classmate = Classmate()
classmate.add("张三")
classmate.add("李四")
classmate.add("王五")

# 判断这个对象是否可以迭代
for i in classmate:
    print(i)

你可能感兴趣的:(python 迭代器 使用iiter()函数与next()函数实现(迭代器))