• 技术文章 >Python技术 >Python基础教程

    如何快速掌握python中的yield from语法?

    2020-11-05 18:02:44原创2447
    协程是什么?可能很多人不清楚,所以我们先从其中的yield from开始讲解。

    yield from 用法详解:

    yield from 是在Python3.3才出现的语法。所以这个特性在Python2中是没有的。

    yield from 后面需要加的是可迭代对象,它可以是普通的可迭代对象,也可以是迭代器,甚至是生成器。

    简单应用:拼接可迭代对象

    我们可以用一个使用yield和一个使用yield from的例子来对比看下。

    使用yield


    1

    <p style="line-height: 1.75em;"><span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;"># 字符串<br>astr='ABC'<br># 列表<br>alist=[1,2,3]<br># 字典<br>adict={"name":"wangbm","age":18}<br># 生成器<br>agen=(i for i in range(4,8))<br><br>def gen(*args, **kw):<br>    for item in args:<br>        for i in item:<br>            yield i<br><br>new_list=gen(astr, alist, adict, agen)<br>print(list(new_list))<br># ['A', 'B', 'C', 1, 2, 3, 'name', 'age', 4, 5, 6, 7]<br></span></p>


    使用yield from


    1

    <p style="line-height: 1.75em;"><span style="font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;"># 字符串<br>astr='ABC'<br># 列表<br>alist=[1,2,3]<br># 字典<br>adict={"name":"wangbm","age":18}<br># 生成器<br>agen=(i for i in range(4,8))<br><br>def gen(*args, **kw):<br>    for item in args:<br>        yield from item<br><br>new_list=gen(astr, alist, adict, agen)<br>print(list(new_list))<br># ['A', 'B', 'C', 1, 2, 3, 'name', 'age', 4, 5, 6, 7]<br></span></p>


    以上就是python中yield from语法的详解。更多Python学习推荐:PyThon学习网教学中心

    专题推荐:yieldfrom语法
    上一篇:Python中的元类是什么?如何快速掌握? 下一篇:Python bool类型是什么?怎么用?

    相关文章推荐

    • 什么是网络协议• python中的去除重复项的操作• python中少见的函数map()和partial()• python的sort()排序方法• Python中的文件读写-理论知识

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网