琢磨python3中yield

这里写图片描述
断点设置在第2行和第13行,debug时程序停留在13行,F5进入yield_test generator,定位到第2行, F6(单步调试)走到第3行,此时j = 0, F5进入函数call(),由于j = 0, call函数返回0,也就是走完第10行后,程序回到第3行,F5后进入第13行,其实就是call返回值赋值给第13行的i, 单步F6运行第11行和12行,在第12行 i = 0,该0就是 call返回的0值, 然后F6定位到了第4行, j = 0, 然后进入第2行,一直循环……, 第二行的for循环结束后运行第5行和第6行,程序运行结束
程序运行的结果如下:
这里写图片描述

yield的一个小用法:

list1= ['a','b','c']
list2 = ['1','2']
list3 = ['sf', 'wh']

def TestYield():
    for element1 in list1:
        yield element1
    for element2 in list2:
        yield element2
    for element3 in list3:
        yield element3

if __name__ == '__main__':
    ele = TestYield()
    for e in ele:
        print(e)

这里写图片描述

其实是想表达一个函数中可以不止一个yield, 对于多个列表可以逐一遍历

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值