Python一分钟:yield关键字与生成器

yield创建生成器函数

包含yield关键字的函数被称为生成器函数,调用生成器函数不会运行函数中的代码,而是返回一个生成器对象。

def fun_generator():
    print("run?")
    yield "Hello world!!"
    yield "Good Work!"

g = fun_generator()
print(type(g))
# <class 'generator'>

yield与return的区别

yieldreturn都会返回一个值,它们的区别如下:

  • return:结束函数并向调用者返回一个值。函数状态不会被保存,也无法恢复。
  • yield:允许函数返回一个值并暂停,再次调用时会从yield语句之后立即恢复执行。

调用生成器对象

调用生成器函数会返回"生成器对象",生成器对象是可迭代的,可被当作迭代器使用。

调用"生成器对象"有两种方法:

  1. 通过next()函数
  2. 通过for循环

示例代码:

def fun_generator():
    print("hello")
    yield 1
    print("world")
    yield 2
    print("good")
    yield 3
    print("job")

# user next()
g1 = fun_generator()
print(next(g1))
print(next(g1))
print(next(g1))

# user for loop
g2 = fun_generator()
for i in g2:
    print(i)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值