IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python(三):yield的初步解释 -> 正文阅读

[Python知识库]python(三):yield的初步解释

yiled

声明

??关于yield得解释,许多博主可能都没说明白,我在这里结合其它博主得解释,来说一下自己得了解。python—yield
??

普通print函数

??举个最普通函数得例子

def norm_print():
	print("我好帅!")

norm_print()

??当我们直接调用norm_print()函数时,程序直接打印“我好帅!”,这点是不会有任何歧义得。而当我们用了含有yield得函数时,情况便会不同。首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。

yield函数

def yield_print():
	print("我好帅!")
	while True:
		res = yield 666
		print("res:",res)
temp_yield=yield_print()
next(temp_yield)
print(next(temp_yield))
print(next(temp_yield))
print("----------------------------")
print(temp_yield.send("sixsixsix"))

?? temp_yield=yield_print() 如果我们直接运行yield_print(),函数并不会真正执行,这是因为函数含有yield关键字,只有调用next方法,函数才会真正执行。
?? next(yield_print()) 这样函数就会打印以下句式:

我好帅!

?? print(next(temp_yield)) 执行这句话之后,yield相当于return,然后就返回666(然后停止),注意,这里并没有给res赋值

我好帅!
666

?? print(next(temp_yield)) 当我们运行第二次next方法时,函数从上一次停止的地方继续运行,因此,先打印出“res:None”,因为并没有给res赋值,然后进入下一个while,直到执行到yield;

我好帅!
666
res: None
666

??那什么时候才给res赋值呢,这要用到send函数。这个时候,send将传入的赋值给res,然后执行next函数(send含有next函数),再次执行while循环,直到下次遇到yield暂停。

我好帅!
res: None
666
res: None
666
----------------------------
res: sixsixsix
666

总结

?? 简单的来说,yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-26 12:10:07  更:2021-10-26 12:12:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:22:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码