首页 > 其他分享 >生成器yield,next()与send()

生成器yield,next()与send()

时间:2024-09-13 16:25:11浏览次数:9  
标签:调用 生成器 yield next send print

# 把a创建成了一个生成器对象 generator object
a = (x * 2 for x in range(10))
print(a)
print(next(a))  # 生成器对象调用用next(a),等价于 a.__next__(),生成器一次调用一个
print(next(a))

for i in a:  # 生成器是一个可迭代对象
    print(i)


# 创建生成器的第二种方式
def f():
    print("第一次调用")
    yield 1
    print("第二次调用")
    yield 2


# 也可以用next()方法调用生成器
for f in f():
    print(f)


# 什么是可迭代对象:就是对象可以被__iter__()这种方式调用的都是可迭代对象


# 斐波拉切生成器
def fbo(f_max):
    n, f_a, f_b = 0, 0, 1
    while n < f_max:
        # print(f_a)
        yield f_a
        f_a, f_b = f_b, f_a + f_b
        n += 1


fbo = fbo(10)
for i in fbo:
    print(i)


# 生成器中send()的应用

def f_send():
    print("第一次调用")
    ser = yield 1
    print(ser)
    print("第二次调用")
    yield 2


# 使用send()第一次必须值为Nome,send可以在生成器yield前传参数,send是从程序执行上一个yield结束时开始执行
f_send = f_send()
f_send.send(None)
f_send.send("AAAAAA")

 

标签:调用,生成器,yield,next,send,print
From: https://www.cnblogs.com/GDquicksand/p/18412412

相关文章

  • python 生成器
    一、可迭代对象、迭代器、生成器的区别可迭代对象:只要实现__iter__方法或者实现__getitem__方法而且其参数从0开始索引,那么该对象就是可迭代对象。可以用for循环遍历,常见的有string,list,tuple,dict,set。迭代器:实现了__iter__方法和__next__方法的对象。__iter......
  • 什么是生成器(Generators)?
    生成器(Generators)在不同的领域和上下文中具有不同的含义,但通常可以概括为一种能够生成新实例或数据的系统、模型或特殊类型的函数。以下是对生成器在不同领域的具体解释:书在python33  点(0M1.编程语言中的生成器在编程语言中,特别是像Python这样的动态语言中,生成器是一种......
  • 详细步骤!分享6款AI论文写作助手自动生成器实例操作!
    在当今学术研究和写作领域,AI论文生成工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是6款推荐的AI论文写作助手自动生成器实例操作,特别推荐千笔-AIPassPaper。千笔-AIPassPaper千笔-AIPassPa......
  • 软件设计模式-生成器模式
    生成器模式的结构生成器(Builder):提供构建产品各部分的方法,一般是一步一步构建复杂对象的各个部分。具体生成器(ConcreteBuilder):实现生成器接口,构建和装配具体的产品部件。产品(Product):最终生成的复杂对象。指挥者(Director):负责安排构建步骤,控制生成器构建对象的过程(可选)。客户端......
  • 我给四个AI图像生成器做了一个‘真实感测试’——结果让我大吃一惊
    根据What’stheBigData的数据,每天有超过340亿(没错,是B)AI图像被创造出来。市场的商品化如此严重,以至于许多AI图像生成器现在都是免费的。如果这些数字听起来疯狂,那是因为它们确实如此。尤其是当你记得这个市场在不到两年前才正式启动时。同时,这场狂欢对于全球用户来说是一大......
  • Python中的生成器和迭代器有什么区别
    在Python中,生成器(generator)和迭代器(iterator)是两个相关但不同的概念。它们都用于处理可迭代对象,但有一些关键的区别。以下是对这两者的详细解释:迭代器(Iterator)定义:迭代器是实现了__iter__()和__next__()方法的对象。它是一个可以逐个访问其元素的对象。特性:迭代......
  • 【生日视频制作】直升机飞机侧身AE模板修改文字软件生成器教程特效素材【AE模板】
    生日视频制作教程直升机飞机侧身AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程AE模板套用改图文教程↓↓:怎么如何做的【生日视频制作】直升机飞机侧身AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:下载AE模板安装AE软件把AE模板导入......
  • 【教师节视频制作祝福】湖边烟花霓虹灯AE模板修改文字软件生成器教程特效素材【AE模板
    教师节祝福视频制作教程湖边烟花霓虹灯AE模板修改文字特效广告生成神器素材玩法AE模板工程怎么如何做的【教师节视频制作祝福】湖边烟花霓虹灯AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:下载AE模板安装AE软件把AE模板导入AE软件修改图片或......
  • python进阶————上下文管理器跟生成器
    上下文管理器与生成器前言一、回顾open语法二、自定义上下文管理器三、生成器3.1创建生成器的两种方式3.1.1生成器推导式3.1.2yield关键字3.2使用生成器生成批次数据四、property属性4.1充当装饰器用法4.2修饰类变量总结前言我们之前学习了文件操作的......
  • python的迭代器和生成器?
    python中的迭代器和生成器都是用来处理数据序列的。迭代器迭代器是一个可以记住遍历位置的对象,使用iter()创建一个迭代器,使用next()方法依次返回迭代器中的每一个元素,如果数组里面的数据已经遍历完了,就会抛出StopIteration异常list=[2,9,34,56,78,3,6,8,3,67]创建迭代器:it=it......