美文网首页
python yield用法

python yield用法

作者: sum3mer | 来源:发表于2017-06-21 14:57 被阅读0次

当函数中包含yield时,函数被调用后并没有执行,可以通过next()语句让它执行,直到遇到yield表达式处。如:

def h():

print 'cc'

yield 5

print 'Fighting!'

c = h()

c.next()

c.next()调用后,h()开始执行,直到yield 5,因此输出结果

cc
5

send(msg)和next()

示例:

def h():

print 'Wen Chuan',

m = yield 5  # Fighting!

print m

d = yield 12

print 'We are together!'

c = h()

c.next()  #相当于c.send(None)

c.send('Fighting!')  #(yield 5)表达式被赋予了'Fighting!'

输出结果为:

Wen Chuan Fighting!

需要提醒的是,第一次调用时,请使用next()语句或是send(None),不能使用send发送一个非None的值,否则会出错的,因为没有yield语句来接收这个值。

send(msg) 和next()是有返回值的,它们的返回值很特殊,返回的是下一个yield表达式的参数。比如yield 5,则返回 5。

def h():

print 'Wen Chuan',

m = yield 5  # Fighting!

print m

d = yield 12

print 'We are together!'

c = h()

m = c.next()  #m 获取了yield 5 的参数值 5

d = c.send('Fighting!')  #d 获取了yield 12 的参数值12

print 'We will never forget the date', m, '.', d

输出结果:

Wen Chuan Fighting!

We will never forget the date 5 . 12

相关文章

  • python yield和yield from用法总结

    python yield和yield from用法总结 yield 作用: 注: generator的next()...

  • python中yield的用法

    python中yield的用法详解——最简单,最清晰的解释

  • yeild的用法

    python中yield的用法详解——最简单,最清晰的解释

  • Python yield

    Python yield的用法详解 如何快速的对yield有一个初步的了解,那么首先我们可以先将yield看做是r...

  • python yield用法

    当函数中包含yield时,函数被调用后并没有执行,可以通过next()语句让它执行,直到遇到yield表达式处。如...

  • python yield 用法

    介绍一个我个人关于python yield的一点小看法 python代码中, 凡是带yield关键字的都被视为一个...

  • python的生成器是怎么回事

    Python基础 - yield 用法详解 转载:http://www.pythontab.com/html/20...

  • Python Yield 精髓

    对 Python 中的 Yield 一直理解的不够深刻,甚至存在误解。遇到一个神奇的用法后(多个 yield 连续...

  • python中yield的用法详解(转)

    原链接:python中yield的用法详解——最简单,最清晰的解释首先,如果你还没有对yield有个初步分认识,那...

  • 31.python中的yield

    python中yield的用法详解——最简单,最清晰的解释 首先,如果你还没有对yield有个初步分认识,那么你先...

网友评论

      本文标题:python yield用法

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