所以,我一直在阅读this,发现了关于向生成器发送值的内容。
现在我有点困惑。yield是一个语句还是一个表达式?它不使用括号语法,像函数一样,所以它看起来像是语句。但它返回值,所以它像是表达式。
不久前,我曾经谈到过“为什么Python没有'if x=foo():(...)'?”(为什么我们不能在if语句条件中赋值)。我说,语句是原子的,所以赋值语句和if语句应该分开。现在,我不知道该怎么想了。
==编辑==
我做了我的功课阅读。
http://docs.python.org/2/reference/expressions.html#generator.send - “value参数成为当前yield表达式的结果。”
所以,yield有值。我明白了,所有文档都说它是一个语句,但是如果语句可能有值,那么表达式和语句之间到底有什么区别呢?
此外,我知道生成器、协程等等。我需要元语义或文档的语义 :D
== 最终答案 ==
yield
是一个语句。 - K DawG