因此,我有以下代码示例:
from Tkinter import *
import socket
def click(*args):
sock = socket.socket()
try:
sock.connect(('localhost', 9999))
sock.send(args)
except socket.error:
print 'server is not runing'
pass
root = Tk()
root.bind("<Button-1>", click)
mainloop()
这看起来很清楚:您运行代码,Tkinter窗口到达,单击它,并显示“服务器未运行”,因为没有服务器在9999端口运行。
但是,如果将绑定函数的调用从更改click
为click("wtf")
,甚至更改为click()
,脚本将在窗口出现后立即打印消息,而不是实际单击它。
为什么会这样呢?
按预期工作;-)使用圆括号,将在执行root.bind之前调用函数“ click”。如果不使用大括号,则“ click”将用作参考。
>>> def click(*args):
... print "click"
...
>>> click
<function click at 0x022FECB0>
>>> click()
click
>>>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句