美文网首页
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的个人学习

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

  • python_理解篇_钩子方法的理解

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

  • python_理解篇_理解类继承

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

  • 重点汇总-python-gitbook-重要点学习-1

    Python中关键字yield有什么作用? 为了理解yield有什么用,首先得理解generators,而理解ge...

  • yield的理解

    参考文档:https://www.ibm.com/developerworks/cn/opensource/os-...

  • python_理解篇_闭包咋理解?

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

  • Python

    怎样理解for循环中用yield{}的用法

  • 迭代器

    我发现我之前还是没有理解迭代器。 最初的理解 定义的函数中有 yield 就是一个迭代器。 yield 只是暂时将...

  • python_装饰器篇(基础理解)

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

  • 关于yield与 yield from的理解

    以下属于自我的理解,如果不太明白,别问我,我也很萌逼。 1.yield 主要用来生成一个生成器,每一次调用就返回一...

网友评论

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

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