精简易懂yield解释。
作者:互联网
精简易懂yield解释。
# -*- coding: utf-8 -*-
def SayDuck():
print("开始数鸭子:")
duck = 0
while duck<=10:
duck +=1
yield duck
#yield 之后,下次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,生成器并不会从SayDuck函数的开始执行,只是接着上一步停止的地方开始
print("循环里的鸭子有{0}只".format(duck))
def SayDuck2():
print("开始数鸭子:")
duck = 0
while duck<=10:
duck +=1
return duck
#return 之后 永远也走不到这里,这是普通的函数return
print("循环里的鸭子有{0}只".format(duck))
def SayDog():
print("开始数狗子:")
duck = 0
while duck<=10:
duck +=1
yield duck
# 这是一个数狗子的生成器,依次生成返回的数
if __name__ == '__main__':
begin = SayDuck()
begindj = SayDuck2()
beginDog = SayDog()
print("数鸭子函数返回的类型是:{}".format(type(begin)))
print("数鸭子2函数返回的类型是:{}".format(type(begindj)))
print(next(begin))
print(next(begin))
print(next(begin))
#数狗子效果
print(next(beginDog))
print(next(beginDog))
标签:utf,coding,yield,duck,精简,易懂 来源: https://www.cnblogs.com/xxxyz/p/16627138.html