我今天遇到了这个问题,我不太清楚为什么会这样:
def outside():
print 'before'
inside()
print 'after'
yield 'World'
def inside():
print 'inside'
yield 'Hello'
for n in outside():
print n(天真)对产出的期望:
before
inside
Hello
after
World实际产出:
before
after
World难道不可能从一个协同线里面调用一个协同线吗?我读到的关于合作与屈服的文章并没有详细阐述这个问题,我在这里很困惑。有人能说明一下这种行为吗?提前感谢!
发布于 2016-07-12 12:07:08
这是完全可能的。当您调用inside()时,它会创建一个协同线。为了得到结果,您需要初始化coroutine并从它得到如下结果:
def outside():
print 'before'
for i in inside():
yield i
print 'after'
yield 'World'结果将如预期的那样:
before
inside
Hello
after
Worldhttps://stackoverflow.com/questions/38328185
复制相似问题