一、 生成器:

  1.1 特点:

    生成器的本质就是一个迭代器
    生成器一定是一个迭代器,迭代器不一定是一个生成器
    生成器是可以让程序员自己定义的一个迭代器
    生成器的好处,节省内存空间
    生成器的特性继承迭代器特性:一次性的,惰性机制,从上向下

  1.2 生成器的普通方法

  
# 方式一:

# 每次创建一个新的生成器对象
def func():
    print(111)
    yield 5
    print(222)
    yield 10

print(func().__next__())  # 每次创建一个新的生成器对象
print(func().__next__())


# 方式二:

# 只创建一个生成器
def func():
    print(111)
    yield 5   # 碰到yield不结束就挂起
    print(222)
    yield 10

generator = func()  # 只创建一个生成器
print(generator.__next__())  # 第一次打印 111 5 生成器停在yield 5 处 挂起
print(generator.__next__())  # 第二次打印 222 10 生成器停在yield 10 处 挂起
print(generator.__next__())  # 第三次无法找到新的生成器,报错


# python2  next() iter()
# python3  next() __next__() iter()  __iter__()



# 方式三:
next() == generator.__next__() 方法相同
def func():
    print(111)
    yield 5
    print(222)
    yield 10

generator = func()
print(next(generator))  # 第一次打印 111 5 生成器停在yield 5 处
print(next(generator))  # 第二次打印 222 10 生成器停在yield 10 处
print(next(generator))  # 第三次无法找到新的生成器,报错
View Code

相关文章:

  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2021-04-29
猜你喜欢
  • 2022-02-10
  • 2022-01-19
  • 2022-12-23
  • 2022-12-23
  • 2021-11-26
  • 2021-09-12
  • 2022-03-10
相关资源
相似解决方案