擅长:python、mysql、java
<p>你离得太近了!在</p>
<pre><code>import turtle
xclick = 0
yclick = 0
def getcoordinates():
turtle.onscreenclick(modifyglobalvariables) # Here's the change!
def modifyglobalvariables(rawx,rawy):
global xclick
global yclick
xclick = int(rawx//1)
yclick = int(rawy//1)
print(xclick)
print(yclick)
getcoordinates()
</code></pre>
<p>找零钱吗?在语法上,删除modfiyglobalvariables后面的括号。<strong>你想要的是传递函数,你要做的是传递函数的输出。</strong></p>
<p>如果你运行代码,你会得到一个异常(TypeError),说你没有传递正确的参数;这是因为它实际上试图调用modifyglobalvariables。减少,你想要的是</p>
^{pr2}$
<p>在这种情况下,每次单击鼠标时,<code>my_function</code>将被调用。此时,它可能提供了正确的参数,也可能没有提供正确的参数。你却说</p>
<pre><code>bind_to_mouseclick( my_function() )
</code></pre>
<p>Python计算<code>my_function</code>,并将调用的结果绑定到鼠标单击。如果<code>my_function</code>碰巧返回了一个函数,那就太好了(也许是我们想要的)。如果它返回一个整数或一个字符串,那就不好了。关键是异常,如上所述;如果函数不需要任何参数,那么检测起来可能会更微妙</p>