Python中怎么实现一个生成器函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1.生成器
2.什么是生成器函数
3.生成器函数的定义
def add():
for i in range(10):
yield i
g = add()
print(g) # <generator object add at 0x10f6110f8>
print(next(g)) # 0
print(next(g)) # 1
4.生成器函数的调用
def gen():
print('111111')
yield '111111'
print('222222')
yield '222222'
print('333333')
yield '333333'
g = gen()
print(g) # <generator object gen at 0x0026BBF0>
next(g) # 111111
next(g) # 222222
next(g) # 333333
next(g, 'over')def gen():
print('111111')
yield '111111'
print('222222')
return '222222'
print('333333')
yield '333333'
g = gen()
print(g) # <generator object gen at 0x0026BBF0>
next(g) # 111111
next(g) # 222222, 抛出异常5.生成器函数的使用场景
# 死循环
def way():
i = 0
while True:
i += 1
yield i
c = way()
print(next(c)) # 1
print(next(c)) # 2
print(next(c)) # 3
print(next(c)) # 4
print(next(c)) # 5
6.生成器函数中的语法糖
# 普通生成器函数way1
def way1():
for i in range(5):
yield i
# 带语法糖的生成器函数way2
def way2():
yield from range(5)
#循环输出way1
for i in way1():
print(i) #0 1 2 3 4
#循环输出way2
for j in way2():
print(j) #0 1 2 3 4
语法糖指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法;
语法糖给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读;
生成器的语法糖也就是生成器的一种语法,作用是使代码更加简洁;
看完上述内容,你们掌握Python中怎么实现一个生成器函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注天达云行业资讯频道,感谢各位的阅读!