首页 > 编程语言 >python生成器

python生成器

时间:2023-02-21 15:11:47浏览次数:39  
标签:__ 调用 python 生成器 yield 生成 next

1.生成器:使用生成器可以生成一个值的序列,用于迭代,并且这个值的序列不是一次生成的,而是使用一个,再生成一个,可以使程序节约大量内存。

2.生成器创建:生成器对象是通过yield关键字定义的函数对象,因此,生成器也是一个函数。

def myYield(n):
    while n>0:
        print("开始生成@@@@....")
        yield n
        print("完成生成@@@@...")
        n -=1
代码自定义了一个递减数组序列的生成器,每次调用时都会产生一个从调用时所提供的初始值不断递减的数字序列。生成对象
可以直接被for遍历,也可以手动进行遍历。
if __name__ =="__main__":
    for i in myYield(4):
        print("遍历到的值是:",i)

    my = myYield(3) #生成一个生成对象
    print("已经实例化生成器对象")
    my.__next__()
    print("第二次调用__next__方法")
    my.__next__()
2.1运行结果:

2.2yield语句是生成器中的关键语句,生成器在实例化时并不会立即执行,而是等待调用其__next__()方法才开始运行。并且当程序运行完yield语句后就会保持其当前状态且停止运行,等待下一次遍历时才恢复运行。
2.3如上图运行结果,程序运行结果中空行之后的输出“已经实例化生成器对象之前”,已经实例化了生成器,但生成器并没有运行(没有输出“开始生成”)。当第次一手动调用__next__()方法后,才输出“开始生成”,标志着生成器已经运行,而在输出“第二次调用__next__()方法:”之前并没有输出“完成一次”,说明yield语句运行之后就立即停止了。而在第二次调用__next__()方法之后,才输出“完成一次”,说明生成器的恢复运行是从yield语句之后开始运行的。

yield语句不仅可以使函数成为生成器和返回值,还可以接受调用者传来的参数。注意:第一次调用生成器时不能传递给生成器None以外的值,否则会引发错误

标签:__,调用,python,生成器,yield,生成,next
From: https://www.cnblogs.com/lcc-lv/p/16658392.html

相关文章

  • python __slots__魔法
    先谈谈python中__dict__存储了该对象的一些属性类和实例分别拥有自己的__dict__在__init__中声明的变量,会存到实例的__dict__中类的静态函数、类函数、普通函数、全局......
  • python+playwright 学习-4.操作iframe
    前言iframe是web自动化里面一个比较头疼的场景,在Selenium中处理iframe需要切换来切换去非常麻烦。在playwright中,让其变得非常简单,我们在使用中无需切换iframe,直接定......
  • Python+uiautomator2写安卓手机脚本前期准备
    1.安装adb网上找一个或者FQ后官网下,然后配置环境变量即可C:\Users\lenovo>adbversionAndroidDebugBridgeversion1.0.39Revision3db08f2c6889-androidInstal......
  • 基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架common
    1框架工具说明工具说明使用Unittest框架开源自动化测试框架,直接使用批量或指定用例运行Unittest框架可支持此功能log日志使用Python的logging库即可......
  • Python列表与元组
    1.列表的格式列表也是一个容器是可变数据类型[数据1,数据2,数据3,数据4,......]列表可以存储多个不同类型的数据2.列表基础操作列表是一个可变数据类型,所执行的操......
  • #Python 缺失值的检测与处理,检测部分
    Python 缺失值的检测与处理,分两部分笔记,第一部分是检测缺失值部分        ......
  • python+playwright 学习-3.页面操作Action
    前言Playwright可以与HTML输入元素交互,例如文本输入、复选框、单选按钮、选择选项、鼠标单击、键入字符、键和快捷方式以及上传文件和焦点元素。fill()输入文字使用......
  • Python 学习记录
    前言Python3.5安装步骤Python官网Pycharm第一个程序.pyprint("hellopython")基本语法type(a)=数据类型整数(在线进制转换)定义a=12Python可以......
  • Excel文件 利用MySQL/Python 实现自动处理数据的功能
    目录问题描述:解决方案:一、SQL查询二、SQL、python处理三、python处理四、优化python处理1.手动执行代码2.开机自动执行代码对比四种方案:总结:问题描述:在没有服务器存储数......
  • python+playwright 学习-2.Selector 选择器定位元素
    前言Selector选择器,也就是通常说的元素定位了,页面上点点点的操作,都是基于元素定位,所以这块是重点需要学的核心内容。Selector选择器说到元素定位,大家肯定会首先想到s......