一篇文章快速理解python中的yield关键字

 更新时间:2024年11月21日 09:27:11   作者:moz与京  
Python中的yield关键字可以让函数变成生成器,产生一个值后暂停,下次调用时从上次停下的地方继续执行,从而节省内存并提高效率,这篇文章主要介绍了python中yield关键字的相关资料,需要的朋友可以参考下

前言

想象一下,你正在做一个蛋糕,但是这个蛋糕非常大,你不想一次性把它全部做完,而是想做一点吃一点,yield 关键字就能让你做到这一点。

(插一句,yield本身最广泛使用的意思就是:产生、产量,其实就可以反映它的作用)

一、yield 的基本作用

  在 Python 中,yield 关键字可以让我们的函数变成一个“生成器”。生成器就像一个特殊的函数,它可以记住自己做到哪一步了,然后下次从上次停下的地方继续做。

二、如何使用 yield

  • 把函数变成生成器:只要你在函数里用到了 yield,这个函数就不再是一个普通的函数了,它变成了一个生成器。

  • 产生值:每次函数执行到 yield 时,它会“产出”一个值,然后停下来。下次再调用这个生成器的时候,它会从上次停下的地方继续执行。

  • 记住状态:当生成器停下来的时候,它会记住所有的变量和它们的状态,这样下次开始的时候,它就能从上次停下的地方继续。

三、一个简单的例子

def count_to(max):
    count = 1
    while count <= max:
        yield count  # 还没结束但是先记着,这里用 yield 产生值
        count += 1   # 继续

# 创建生成器
counter = count_to(5)

# 迭代生成器
for number in counter:
    print(number)

这段代码会输出:

1
2
3
4
5

每次循环,yield 都会产生一个数字,然后函数就暂停在那里。下一次循环开始时,函数会从上次停下的地方继续执行。

总结

  • yield 让函数变成生成器。
  • 生成器可以一次产生一个值,而不是一次性产生所有值。
  • 生成器会记住自己做到哪一步了,下次可以从上次停下的地方继续。

到此这篇关于python中yield关键字的文章就介绍到这了,更多相关python的yield关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用 python pyautogui实现鼠标键盘控制功能

    使用 python pyautogui实现鼠标键盘控制功能

    pyautogui是一个可以控制鼠标和键盘的python库,类似的还有pywin32。这篇文章主要介绍了python中的pyautogui实现鼠标键盘控制功能,需要的朋友可以参考下
    2019-08-08
  • 基于PyQt5制作一个数据图表生成器

    基于PyQt5制作一个数据图表生成器

    这篇文章主要介绍了如何利用PyQT5制作一个数据图表生成器,可以通过Pyecharts模块生成可视化的html数据图表,感兴趣的小伙伴可以跟随小编学习一下
    2022-02-02
  • Python跨平台读取 .doc格式文件的方法

    Python跨平台读取 .doc格式文件的方法

    在跨平台的开发环境中,处理不同文件格式是一个常见问题,尤其是老旧的 .doc 格式,在这篇博客中,我们将介绍一种基于 Python 的跨平台方案,使用 LibreOffice 将 .doc 文件转换为 .docx 格式,之后再通过 docx2txt 进一步处理文档内容,需要的朋友可以参考下
    2025-02-02
  • 详解Python3中的Sequence type的使用

    详解Python3中的Sequence type的使用

    这篇文章主要介绍了详解Python3中的Sequence type的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • 使用uv安装多个Python版本的使用方法全攻略

    使用uv安装多个Python版本的使用方法全攻略

    本文介绍了新一代Python工具uv,它集成了pyenv、venv和pip的功能,提供更高效的Python版本管理、虚拟环境创建和依赖管理,感兴趣的小伙伴可以了解下
    2025-12-12
  • 学会迭代器设计模式,帮你大幅提升python性能

    学会迭代器设计模式,帮你大幅提升python性能

    这篇文章主要介绍了python 迭代器设计模式的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Python 中最长公共子序列的长度

    Python 中最长公共子序列的长度

    子序列是在不改变剩余字符的顺序的情况下,在删除一些字符或不删除任何字符后从给定序列获得的序列,这篇文章主要介绍了Python 中的最长公共子序列,需要的朋友可以参考下
    2023-06-06
  • Matlab中关于argmax、argmin函数的使用解读

    Matlab中关于argmax、argmin函数的使用解读

    这篇文章主要介绍了Matlab中关于argmax、argmin函数的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Python简单操作sqlite3的方法示例

    Python简单操作sqlite3的方法示例

    这篇文章主要介绍了Python简单操作sqlite3的方法,结合实例形式分析了Python针对sqlite3数据库的读取、创建、增删改查等基本操作技巧,需要的朋友可以参考下
    2017-03-03
  • Python数据分析matplotlib折线图案例处理

    Python数据分析matplotlib折线图案例处理

    这篇文章主要介绍了Python数据分析matplotlib折线图案例处理,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论