-1

したがって、次のコードサンプルがあります。

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()、スクリプトはウィンドウが表示された直後、実際にクリックする前にメッセージを出力します。

なぜそのようなことが起こるのですか?

4

1 に答える 1