python中yield关键字用法

Madeline ·
更新时间:2024-11-10
· 850 次阅读

首先,把yield理解成return,可以用作返回数据,如下:

def f(): yield 9 next(f()) #结果为 9

如果你用一个变量接受该值,首次执行时并不会执行函数,而是先得到一个生成器,如下:

def f(): print("提示字符!") yield 9 g=f() print(g) #结果为:

可以看出,调用了f()函数,但并没有输出“提示字符!”汉字,说明未执行函数体,g的打印结果为一个生成器。
那什么时候才会执行函数体呢?当需要用到返回的数值时执行,如下:

def f(): print("提示字符!") yield 9 g=f() print(g) print("--------") print(next(g)) #结果为: -------- 提示字符! 9

通过next()函数获取返回值,则开始执行函数体。
yield与return还有一点不同的是,return返回数据后直接退出函数,不再执行,但yield返回数据后函数只是“暂停”状态,之后仍然可以通过next()函数接着之前的状态继续运行,如下:

def f(): while(True): print("提示字符!") yield 9 print("程序接着之前状态运行!") g=f() print(next(g)) print("-----分隔符-----") print(next(g)) #结果为: 提示字符! 9 -----分隔符----- 程序接着之前状态运行! 提示字符! 9

可以看出,yield返回后函数并未退出,下一次调用时接着在运行。


作者:IT_小白:-)



yield Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号