欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Python yield与yield from的简单使用方式

2025年08月03日 Python
python yield与yield from的使用当一个函数带有 yield 的时候,这个函数就叫做生成器。在一个函数中处理 io 操作时,可以先返回一部分,让程序做其它事情,等处理完其它事情,在进

python yield与yield from的使用

当一个函数带有 yield 的时候,这个函数就叫做生成器。

在一个函数中处理 io 操作时,可以先返回一部分,让程序做其它事情,等处理完其它事情,在进行刚才暂停的地方。

比如:我要爬取某些网站时,解析页面时

代码结构

def get_value(num):
	"""生成器"""
    for i in ["a", "b"]:
        yield f"{i}{num}"

def get_html():
    for i in [1, 2, 3]:
        yield get_value(i)

def get_html_from():
    for i in [4, 5, 6]:
        yield from get_value(i)

if __name__ == '__main__':
    # print(list(get_html()))
    # print(list(get_html_from()))
    for value in get_html():
        print(value)
    print("*" * 50)
    for value in get_html_from():
        print(value)

执行结果

<generator object get_value at 0x000001e5a46c1448>
<generator object get_value at 0x000001e5a46c1d48>
<generator object get_value at 0x000001e5a46c1448>
**************************************************
a4
b4
a5
b5
a6
b6

简单讲, 就是当一个生成器想返回另一个生成器中的值时,就可以使用yied from

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。