单个<yield>有什么作用?

时间:2019-03-26 10:37:19

标签: python python-3.x yield

我在下面有一些代码,但我不知道语句yield的作用。如果仅致电f.foo(),将不会打印任何内容。但是,如果调用f.test(),将首先打印列表a,然后打印字符串OK,最后打印列表b。那么,单个yield一般会做什么?

from contextlib import contextmanager
class Foo(object):
@contextmanager
def foo(self):
    a = [1, 2, 3]
    print (a)
    yield
    b = [2, 3, 4]
    print (b)
def test(self):
    with self.foo():
        print ("OK")
if __name__ =="__main__":
    f = Foo()
    f.foo()

0 个答案:

没有答案
相关问题