我是靠谱客的博主 温柔可乐,最近开发中收集的这篇文章主要介绍生成器详解一、语法二、代码三、send与next,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

生成器详解

  • 一、语法
  • 二、代码
  • 三、send与next

一、语法

yield a
 首先需要定义一个函数,只要函数中有yield,那么这个函数就是一个
生成器。

二、代码

def SolveBoFei(num):
a, b = 0, 1
current_num = 0 # 定义一个计数器
while current_num < num:
yield a # 只要含有一个yield,那么这个函数就是一个生成器,生成器也是特殊的迭代器
a, b = b, a + b
current_num += 1
if __name__ == "__main__":
try:
obj = SolveBoFei(10)
for i in obj:
print(i)
except Exception as ex:
print("What's a pitty!", ex)
finally:
print("完美!!!")
生成器是一个特殊的迭代器,所以可以使用for循环来调用
if __name__ == "__main__":
try:
obj = SolveBoFei(10)
# for i in obj:
#
print(i)
print(next(obj))
except Exception as ex:
print("What's a pitty!", ex)
finally:
print("完美!!!")
这里还可以使用next()函数进行调用
if __name__ == "__main__":
try:
obj = SolveBoFei(10)
# for i in obj:
#
print(i)
print(next(obj))
obj.send("hahah")
except Exception as ex:
print("What's a pitty!", ex)
finally:
print("完美!!!")
还可以使用send方法调用

三、send与next

next():使用这个函数会返回yield后面的语句的执行结果
send():使用这个函数也是会返回yield后面的语句的执行结果,但是可会执行send()里面传入的参数
注意:
在执行迭代器的时候不能直接(第一次执行的时候)就调用send方法,这样系统会报错

最后

以上就是温柔可乐为你收集整理的生成器详解一、语法二、代码三、send与next的全部内容,希望文章能够帮你解决生成器详解一、语法二、代码三、send与next所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部