擅长:python、mysql、java
<p>你写的有什么问题吗?它不一定访问全局范围,而是真正访问局部范围(如果找不到变量,则使用全局范围)。作为一个例子,这是非常好的:</p>
<pre><code>def func():
ws = WebSocket(url)
sch.on_receive(lambda msg: ws.send(msg))
</code></pre>
<p>正因为如此,我认为它更像是一个闭包,而不是访问全局变量。如果您没有使用<code>lambda</code>来完成此操作,请参考以下方法:</p>
^{pr2}$
<p>或者更简洁:</p>
<pre><code>wrapper = lambda url: Websocket(url).send
sch.on_receive(wrapper(url))
</code></pre>
<p>但这实际上相当于:</p>
<pre><code>sch.on_recieve(WebSocket(url).send)
</code></pre>