zoukankan      html  css  js  c++  java
  • python中yield 与 return 区别

    yield 是暂停的意思(它有程序中起着类似红绿灯中等红灯的作用);yield是创建迭代器,可以用for来遍历,有点事件触发的意思

    return  在方法中直接返回值;是函数返回值,当执行到return,后续的逻辑代码不在执行

    相同点: 都是定义函数过程中返回值

    不同点:

    • yield是暂停函数,return是结束函数; 即yield返回值后继续执行函数体内代码,return返回值后不再执行函数体内代码
    • yield返回的是一个迭代器(yield本身是生成器-生成器是用来生成迭代器的);return返回的是正常可迭代对象(list,set,dict等具有实际内存地址的存储对象)
    • 共同点:return和yield都用来返回值;在一次性地返回所有值场景中return和yield的作用是一样的。

      不同点:如果要返回的数据是通过for等循环生成的迭代器类型数据(如列表、元组),return只能在循环外部一次性地返回,yeild则可以在循环内部逐个元素返回。下边我们举例说明这个不同点。

    def h():
        print('feng')
        # yield 9
        return 9
        print('yes')
    
    
    c = h() 
    

     结果:

    def h():
        print('feng')
        yield 5
        # return 5
        print('tes')
    
    
    c = h()
    

      结果:

     转载:https://www.cnblogs.com/andy0816/p/15617462.html

    feng
  • 相关阅读:
    BNU校赛
    Latest Common Ancestor
    Codeforces Round #482 (Div. 2)
    Persistent Line Segment Tree
    2018HNCCPC(Onsite)
    2018HNCCPC
    2017 ACM Jordanian Collegiate Programming Contest
    Codeforces Round #480 (Div. 2)
    负载均衡SLB
    windows下的端口监听、程序端口查找命令
  • 原文地址:https://www.cnblogs.com/mumianhuasayyes/p/15839961.html
Copyright © 2011-2022 走看看