victory的博客

长安一片月,万户捣衣声

0%

python | 迭代器

迭代器

# 创建一个返回数字的迭代器,初始值为 1,逐步递增 1:
class MyNumbers:
    def __iter__(self):
        self.a = 0
        return self

    def __next__(self):
        self.a = self.a + 1
        return self.a

# 奇数迭代器
class MyOddNumbers:
    def __iter__(self):
        self.num = 1
        return self

    def __next__(self):
        self.num = self.num + 2
        return self.num

# 偶数迭代器
class MyEvenNumbers:
    def __iter__(self):
        self.num = 0
        return self

    def __next__(self):
        self.num = self.num + 2
        return self.num

myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print("======================================")
my_odd_numbers = MyOddNumbers()
my_odd_numbers_iter = iter(my_odd_numbers)
print(next(my_odd_numbers_iter))
print(next(my_odd_numbers_iter))
print(next(my_odd_numbers_iter))
print(next(my_odd_numbers_iter))
print("======================================")
my_even_numbers = MyEvenNumbers()
my_even_numbers_iter = iter(my_even_numbers)
print(next(my_even_numbers_iter))
print(next(my_even_numbers_iter))
print(next(my_even_numbers_iter))
print(next(my_even_numbers_iter))