首先,我想指出,我对Python不是特别熟悉。我最近被迫熟悉了一个代码示例,它让我的下巴半开着,我无法“翻译”它。我看过的各种文件和文章也无济于事:
以下是所讨论函数的简化版本:
@coroutine
def processMessage(receiver):
global userID
#...
while True:
msg = (yield)
try:
#...
except Exception as err:
#...
我无法理解它的作用,因此无法“遍历”代码。我的问题是“这个函数做什么?”以及“这个功能遵循什么顺序?”在
让我困惑的是msg = (yield)
。我不知道要实现什么。直觉告诉我,它只是在新信息通过时抓住它们,但我不明白为什么要这样。如果有人知道,如果我提供了足够的信息,我将非常感谢你的解释。在
Try
子句:
p.S.receiver
是一个套接字接收器。在
生成器中的语法
variable = (yield some_value)
执行以下操作:some_value
返回给调用它的代码(通过next
或send
).next
或.send(another_value)
),它将another_value
分配给variable
,并继续执行。在例如,假设您有一个生成器函数:
现在,让我们调用
^{pr2}$f
。这会给我们一个发电机。在当我们第一次使用发电机时,我们不能给它发送数据
此时它只计算了
yield
。。。当我们现在调用.send
时,它将从该点继续,将我们发送给它的数据赋给给定的变量在特定的示例代码中,有一个生成器:
.send(some_msg)
相关问题 更多 >
编程相关推荐