python生成器的原理探究

  • 时间:
  • 5432人关注

python生成器的原理探究:1、生成器是通过使用yield语句而不是return语句定义一个普通函数来创建的;2、yield语句暂停函数,保存它的所有状态,在后续调用时继续执行;3、调用是由生器自动处理的。,另外这篇文章主要知识点是关于Python、python教程的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:python教程
  • 编辑整理:马梦旋
  • 教程字数:714字节
  • 阅读时间:大概14分钟
  • 下载本教程(DOC版)
  • Python微服务开发
  • 从Excel到Python:数据分析进阶指南
  • OpenCV算法精解:基于Python与C++
  • 京东抢茅台脚本(Python脚本)
  • Python网络爬虫权威指南
  • 码农之家最近发表了一篇名为《python生成器的原理探究》的py文章,实例讲的很实用,把错误代码改掉了,希望对网友有用。

    python生成器的原理探究

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    1、概念

    生成器是通过使用yield语句而不是return语句定义一个普通函数来创建的。如果函数包含至少一个yield语句,它就成为一个生成器函数。yield和return都将从函数返回一些值。函数在执行return时终止,而yield语句暂停函数,保存它的所有状态,然后在后续调用时继续执行。

    2、组成

    至少有一个yield语句。

    返回一个对象(迭代器),但不立即开始执行。

    记住连续调用之间的局部变量及其状态。

    实现迭代协议。

    3、原理分析

    下面是使用生成器的类似内容。可以发现,调用__iter__()和__next__()都是由生成器自动处理的:

    # Generator for next power of two.
    def NextPowTwo(max_ele):
        n = 0
        while n < max_ele:
            yield 2 * n
            n += 1
        raise StopIteration
     
               
    obj = NextPowTwo(20)
    print (obj.next())
    print (obj.next())
    print (obj.next())
    print (obj.next())

    在对于python学习的时候,容易把生成器与别的知识点混淆,其实想要判断有个最简单的方法,看看是否使用yield函数就知道了。

    以上就是python生成器的原理探究,相信现在已经能够通过yield来明确生成器的使用了。同时我们可以发现,生成器在自动处理调用上是非常好用的。

    上一篇:python异常处理的两种技巧

    下一篇:python特殊方法有哪些

    相关内容

    • python实现简单的tcp 文件下载

      这篇文章主要介绍了python如何实现简单的tcp文件下载,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下

      04-18python tcp下载

      阅读更多
    • 介绍python读取文件内容的方法

      首先使用Python open() 方法用于打开一个文件,并返回文件对象,如果该文件无法被打开,会抛出OSError的错误。使用参数只读方式打开。然后在使用.read()方法进行读取文件。

      02-26python怎么读取文件内容

      阅读更多
    • 为什么说python适合人工智能

      在本篇文章里小编给大家分享了关于python适合人工智能的理由和优势以及相关知识点,需要的朋友们学习下。

      06-14python适合人工智能的理由和优势

      阅读更多
    • 关于Python异常处理的理解

      这篇文章主要给大家介绍了关于Python异常处理的哲学,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

      06-22深入理解Python异常处理的哲学

      阅读更多
    • python把大于上限的数字置零实现方法

      今天小编就为大家分享一篇python 处理数字,把大于上限的数字置零实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

      12-20python 处理数字,把大于上限的数字置零实现方法

      阅读更多
    • 教孩子学编程:Python语言版

      教孩子学编程:Python语言版

      这是一本教孩子使用Python进行基础程序设计和解决问题的入门图书,针对变量、循环、函数等编程基础概念的介绍,可以帮助年轻的程序员构建所需的技能,适合任何想要通过Python学习编程的读

      大小:45.4MB儿童编程

      立即下载
    • Python应用开发实战

      Python应用开发实战

      Python应用开发实战 出版时间: 2018 Python是使用较多的动态编程语言之一,应用广泛,学习者众多。本书使用一个生动有趣的、基于文本的游戏主题作为讲解内容来介绍Python应用开发过程的各个方面。全书共10章,涉及简单应用开发、模块化、打包和发布应用的代码、文档规范、单元测试、重构、设计模式、性能监测、性能优化、GUI应用、MVC框架等方方面面的软件开发知识和技能。本书适合有一定Python语言基础,想要快速掌握Python项目开发知识、提高Pyth

      大小:40.06MBPython

      立即下载
    • Python密码学编程

      Python密码学编程

      Python是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。同时,Python语言在算法领域也得到了很好的应用。 Python密码学编程 通过理论和实例相结合的

      大小:198.9 MBPython编程

      立即下载

    学习笔记

    40小时41分钟前回答

    Python中的高级编程一些小技巧总结

    这篇文章主要介绍了介绍Python中的一些高级编程技巧,包括推导师和装饰器等重要的进阶知识点,皆为深入学习Python开发的必备基本功,需要的朋友可以参考下 正文: 本文展示一些高级的Python设计结构和它们的使用方法。在日常工作中,你可以根据需要选择合适的数据结构,例如对快速查找性的要求、对数据一致性的要求或是对索引的要求等,同时也可以将各种数据结构合适地结合在一起,从而生成具有逻辑性并易于理解的数据模型。Python的数据结构从句法上来看非常直观,并且提供了大量的可选操作。这篇指南尝试将大部分常用的数据结构知识放到一起,并且提供对其最佳用法的探讨。 推导式(Comprehe……

    27小时56分钟前回答

    python pillow库的基础使用教程

    知识点 图像模块 (Image.Image) Image模块的功能 Image模块的方法 ImageChops模块 ImageColor模块 基础使用 图像模块 Image.Image 加载图像对象,旋转90度并显示 from PIL import Image#显示图像im = Image.open('background.jpg')im.show()# 转换图像90度im.rotate(90).show() 创建缩略图 128x128 from PIL import Imageimport glob, ossize = 128, 128for infile in glob.glob('D:\code\gitee\pydata\python3-example\pillow_demo\*.jpg'): print(infile) filename = os.path.split(infile)[-1] im = Image.open(infile) im.thumbnail(size, Image.ANTIALIAS) im.save("D:\code\gitee\pydata\python3-example\pillow_demo\\" + filename) 创建一个新图像, 分辨率为1920*1080 from PIL import Imageim = Image.new('RGB', (1920, 1080), (255, 0, 0))im1 = Image.new('RGB', (1920, 108……