Итак, у меня есть следующий код:функции с аргументами автозапуске
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()
, скрипт будет печатать сообщение прямо после появления окна, перед тем вы на самом деле нажмите его.
Почему такое происходит?
возможно дубликат дюжины или более вопросов, в том числе [Вызов функции с аргументами о «команде» и «привязки»] (http://stackoverflow.com/questions/9396211/calling-functions-with-arguments -он-Командно-связывать). –