其他分享
首页 > 其他分享> > 第九节 生成器

第九节 生成器

作者:互联网

def create_num(all_num):
a, b = 0, 1
current_num = 0
while current_num <= all_num:
yield a # 如果一个函数中有yield语句,那么这个就不再是一个函数,而是一个生成器模板
a, b = b, a+b
current_num += 1

'''
生成器是一种特殊的迭代器
'''
# 则在调用调用create_num时,不再是调用函数,而是在创建一个生成器模板
a = create_num(10) #不会像函数一样运行,而是生成数据的一个类,与list等比较,list是实在的数据,而create_num()是生成数据的对象
print(create_num(10))
# for x in a: #开始循环第一个,代码执行到yield语言暂停,将a取出,然后再次回到暂停的地方继续往下执行,不是create_num整个执行结束将保存的a值一次性当作一个迭代器
# print(x)

b = next(a)
print(b)
c = next(a)
print(c) # 取数原理跟用for循环一样

标签:第九节,生成器,yield,current,num,print,create
来源: https://www.cnblogs.com/kogmaw/p/12575506.html