使用Python yield的表达式和语句之间有什么区别

min*_*nel 4 python

可能重复:
表达式与声明

Python中表达式语句之间有什么区别?

直到我学习Python生成器说" 使用yield作为表达式 " 之前,我才想到这个问题

另外,你能在Python生成器的上下文中解释这个问题吗?'将yield用作表达式'?

Tho*_*s K 8

可以计算表达式以返回值.任何表达式也可以用作语句.

换句话说,如果你可以写a = ...,那么...就是表达.所以2*3,zip(x,y)是表达.

类似于raise Exception陈述但不是表达:你不能写a = (raise Exception).

yield是一个表达式意味着它b = (yield a)是生成器中的有效代码.如果使用生成器的send()方法,b则设置为传入的值.