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

yipeiwu_com5年前Python基础

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

介绍

我们有时候会发现代码中return的地方,有用yield的,难道他们一样吗?其实,yield与return看起来很像,但实际上完全不同。

使用

def test():
  print("****start****")
  while 1:
    res = yield 1
    print("res:", res)
t = test() # 函数中有yield关键字,所以函数并不会真的执行,而是先得到一个生成器t
print(next(t)) # next让函数开始执行,打印start,然后把1返回给next(t),并把1打印出来,这时res还没赋值
print("*"*10) # 打印十个* 
print(next(t)) # 函数从res = yield开始执行,但是1已经被yield出去了,所以res实际上没有值,就是None,然后while重新循环,1被yield出去打印

# ****start****
# 1
# **********
# res:None
# 1

你绕出来了吗?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python通过配置文件共享全局变量的实例

在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况,此时通过配置文件定义全局变量是一个比较好的选择。 首先配置config.py模块,config需要设...

浅谈Python 集合(set)类型的操作——并交差

阅读目录 •介绍 •基本操作 •函数操作 介绍 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并、交...

python处理中文编码和判断编码示例

下面所说的都是针对python2.7 复制代码 代码如下:#coding:utf-8#chardet 需要下载安装 import chardet#抓取网页htmlline = "http...

浅谈python jieba分词模块的基本用法

jieba(结巴)是一个强大的分词库,完美支持中文分词,本文对其基本用法做一个简要总结。 特点 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析;...

详解Python中pandas的安装操作说明(傻瓜版)

详解Python中pandas的安装操作说明(傻瓜版)

很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1:...