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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论