`
sls0919
  • 浏览: 125848 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python之yield学习

阅读更多

        最近看新项目代码里有好多的yield,之前由于很少用,所以对其不慎了解,学习之。

        yield就是一个生成器,也可以理解为自定义的迭代器,需要你每次调用next()或者是send()方法才能执行下去,直到碰到下一个yield。执行一个 send(msg) 会恢复 generator 的运行,然后发送的值将成为当前 yield 表达式的返回值。然后 send() 会返回下一个被 generator yield 的值,如果没有下一个可以 yield 的值则引发一个异常。

 

那么可以看过这其实包含了一次运行,从将msg赋给当前被停住的 yield 表达式开始,到下一个 yield 语句结束,然后返回下一个yield语句的参数,然后再挂起,等待下一次的调用。看例子

 

>>> def tt():
...     print 'hello'
...     a = yield 5
...     b = a +2
...     print b
...     print "cc"
...     c = yield 6
...     print 'dd'
...     b = b + 2
...     print b
>>> x = tt()
>>> x.next()
hello
5
>>> x.send(8)
10
cc
6
>>> x.send(7)
dd
12
Traceback (most recent call last):
  File "<pyshell#71>", line 1, in <module>
    x.send(7)
StopIteration
>>> 

 

 

分享到:
评论

相关推荐

    python中yield的用法详解1

    在Python编程语言中,`yield`关键字是一种特殊的功能,它被用于创建生成器(generator)。生成器是一种特殊的迭代器,可以动态地生成值,...通过深入学习和实践,我们可以充分利用`yield`来编写高效、内存友好的代码。

    python中yield的认识与学习|生成器

    接触python,yield就有点难度啦、都知道包含这个yield的函数就不是普通函数啦。就是一个生成器函数。 类型: 白话,他跟return的区别就是。他会为用户保留一个断点。return,程序执行一次之后,就会一切重新开始。...

    Python中yield返回生成器的详细方法.pdf

    在Python编程语言中,`yield`关键字是用来创建生成器(generator)的重要工具,它与`return`类似但有所不同。生成器是一种特殊的迭代器...为了深入学习Python,可以参考推荐的在线教程和视频资源,进一步提高编程技能。

    通过实例简单了解Python中yield的作用

    这篇文章主要介绍了通过实例简单了解Python中yield的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 我们有时候会发现代码中return的地方,有用...

    python项目学习3

    【Python项目学习3】是一个关于Python编程的系列学习资源,主要涵盖了使用Python进行Web开发和网络爬虫的实践项目。这个系列着重于提升对Python的实际应用能力,特别是Tornado框架和网络爬虫技术。 首先,我们来...

    python 学习资料包

    9. **Python3新特性**:如非本地化字符串、yield from、asyncio异步编程等。 10. **实战项目**:学习资料可能包含实际项目案例,如爬虫开发、数据分析报告、Web应用构建等,帮助学习者将理论知识应用于实践中。 每...

    python学习资料和课件,python教学课件,Python

    1. **列表(List)**: Python中最常用的数据结构之一,可以存储任意类型的元素,支持索引访问、切片、增删改查操作,以及列表推导式。 2. **数据结构的常用操作**: 如append()、extend()、insert()、remove()、pop...

    python学习资料汇总

    【Python学习资料汇总】 这份资料集合为初学者提供了一个全面的Python学习路径,涵盖了从基础概念到高级特性的广泛知识。以下是对各个文档和PDF的详细解析: 1. **Python的类成员和装饰器介绍.docx**:这部分内容...

    B站黑马程序员Python教程学习笔记.zip

    8. **生成器**:学习如何使用生成器表达式和yield关键字,以节省内存并提高效率。 【Python实战项目】 在学习过程中,通过实战项目可以加深对Python的理解,例如: 1. **网页爬虫**:利用requests和BeautifulSoup...

    深入学习python(PDF)

    《深入学习Python》这本书是Python编程领域的一部经典之作,主要面向已经掌握Python基础的读者,旨在帮助他们深入了解Python的内部机制和高级特性,提升编程技能。PDF版本使得读者可以随时随地进行电子阅读,方便...

    python3.6生成器yield用法实例分析

    生成器(Generator)是Python中一种特殊的迭代器(Iterator),它的作用是允许用户在迭代过程中暂停和恢复迭代过程。...对于Python程序设计的学习和实践,本文所述的内容将对设计出更加高效、优雅的代码大有裨益。

    14张全套Python学习思维导图.zip

    这14张全套Python学习思维导图涵盖了Python的基础到进阶的知识点,是初学者和进阶者提升技能的重要参考资料。 1. **基础语法** - 变量与数据类型:包括整型、浮点型、字符串、布尔型以及复数,理解它们的用法和...

    华为出品-Python基础入门教程-可爱的Python 共86页.ppt

    【Python技术前景】 Python是一种广泛应用于各种领域的高级编程语言,具有强大的解释性、交互性和...华为出品的这个Python基础入门教程,无疑为学习者提供了全面、深入的指导,帮助他们更好地理解和掌握Python编程。

    深入学习python的yield和generator

    Python中的`yield`和`generator`是编程语言中一种高效且节省内存的机制,它们主要用于创建迭代器。本文将深入探讨这两个概念以及如何在Python中使用它们。 首先,生成器是一种特殊的迭代器,它能够在运行时动态生成...

    Python yield 使用方法浅析

    ### Python `yield` 使用方法浅析 #### 一、引言 在Python中,`yield` 是一个强大的关键字,它可以将一个普通的函数转换为生成器(generator)。与传统的函数不同,生成器允许我们在代码中“暂停”并保存当前的状态,...

    Python 学习笔记 第二版.pdf

    Python中有局部作用域和全局作用域之分。 - **闭包**:闭包是一种特殊的函数,它可以访问并记住在其外部定义的变量的值,即使外部函数已经结束执行。 - **迭代器**:迭代器是一种可以遍历集合中元素的对象。Python...

    python 学习手册 4版 pdf

    "Python学习手册第四版"是一本深入浅出的教材,适合初学者和有经验的开发者使用。这本书详细介绍了Python语言的核心概念,包括语法、数据结构、函数、模块、异常处理以及面向对象编程。 在第四版中,作者更新了内容...

    python 零基础学习篇-05python进阶.zip

    本"Python 零基础学习篇-05 Python进阶"将带你深入理解Python编程的更多高级特性,进一步提升你的编程技能。 在Python进阶学习中,我们将涵盖以下几个关键知识点: 1. **函数和模块化编程**:函数是组织代码的基本...

Global site tag (gtag.js) - Google Analytics