Tkinter 中意外的按鈕觸發:了解函數引用
在Tkinter 中,建立按鈕時,可以指定將執行的命令單擊按鈕時。但是,在您的程式碼範例中,建立按鈕時會立即執行提供的命令。
要了解發生這種情況的原因,請考慮以下程式碼片段:
此程式碼相當於:
當您在指令參數內呼叫button('hey')時,您正在呼叫該函數並立即執行它。結果,在實際按一下按鈕之前列印了程式碼 print('hey') 和 print('het')。
要解決此問題,您需要傳遞函數的引用,而不需要執行它。為此,只需省略括號即可:
這將傳遞對按鈕函數的引用,並且它將在單擊按鈕時執行,而不是在創建按鈕時執行。
或者,您可以使用 lambda 函數建立匿名函數,該函數使用所需參數呼叫原始函數:
以上是為什麼我的 Tkinter 按鈕的命令是立即執行而不是單擊時執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!