美文网首页
python_理解篇_yield的个人学习

python_理解篇_yield的个人学习

作者: 金鱼座 | 来源:发表于2020-04-13 15:54 被阅读0次

    大家好,我是金鱼座,一个走在测试领域这片蓝海中, 蹉跎前行的技术渣渣,唯有一直走下去,也许能改变点什么,加油!

    yield是作为一个生成器的重要标志,在后面的很多地方都或多或少都会用到,特别是如果要学习一些框架代码的时候,由于个人能力问题,对这类的东西一直一知半解,所以今天就把自己的了解做总结下

    yield常见的使用法

    # 第一种普通用法
    def yield_1():
        print("yield_1 start")
        yield
        print("yield_1:{}".format(c))
    
    # 带有返回值的用法
    def yield_2(value):
        print("yield_2 start")
        yield  value
        print("yield_2:{}".format(c))
    
    # 可以接收值的用法 
    def yield_3(value):
        print("yield_3 start")
        c = yield  value
        print("yield_3:{}".format(c))
    
    1. 在函数中增加yield,即可完成生成器的定义,这是绝对的,如上述代码,
    2. yield中即可和普通的return一样进行值返回,也可以像方法参数一样接收值的传递

    如何执行?
    对于一个生成器必须使用next和send对其进行唤醒操作,否则是不会自动进入到方法中执行

    y  = func()
    y.send(None)  or  next(y)
    

    如何传值?

    y.send(value)   该方法会将value值传给yield_3中的 c, c会自动接收
    

    如何返回值

    g = next(y) or y.send(value2) 该方式可以让g获取y中的yield value中的value的值
    

    目前来看最基本的三个方式就是上述三种,至于是否有其他的,暂时也没有研究,先弄明白这些吧

    相关文章

      网友评论

          本文标题:python_理解篇_yield的个人学习

          本文链接:https://www.haomeiwen.com/subject/lmfnmhtx.html