概述
生成器详解
- 一、语法
- 二、代码
- 三、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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复