当我看到这段代码时,我正在阅读Python教科书:
def print_matches(matchtext):
print "Searching for", matchtext
while True:
line = (yield)
if matchtext in line:
print line
matcher = print_matches("python")
matcher.next()
matcher.send("Hello World")
matcher.send("python is cool") # prints "python is cool"
matcher.send("yow!")
matcher.close()
我一直认为它是一种return
- 兄弟,所以现在我真的很感兴趣(yield)
如何运作。有些人推荐我the Python 2 documentation和PEP 342。
但由于我不是母语人士,因此我很难理解那里所写的任何内容。有人可以用尽可能简单的语言告诉我(yield)
的工作原理吗?
我理解你使用" yield"时的语法按需返回对象。但我不理解" line =(yield)"的实现。为什么"收益"是变量的值?