Python tkinter では、ボタン ウィジェットの "command" パラメータは、実行する関数を指定することを目的としています。ボタンが押されたときに実行されます。ただし、初心者によくある誤解は、「コマンド」に関連付けられた関数がボタン宣言時にも実行されるということです。
この動作を理解するには、Python が関数パラメーターを処理する方法を詳しく調べる必要があります。関数をパラメーターとして渡す場合、次の 2 つの可能性があります:
提供したコード例では、Hello() がパラメータとして渡されます。 Button ウィジェット。これは、関数がすぐに実行され、その戻り値が「command」に渡されることを意味します。 Hello() は何も返さないため、None を返します。これはボタンの「command」パラメータに割り当てられ、事実上何も行われません。
この問題を解決して、ボタンがクリックされたときのみ関数を実行するには、次のようにします。次のように関数オブジェクトを渡す必要があります:
<code class="python">hi = Button(frame, text="Hello", command=Hello)</code>
こうすることで、ボタンが押されたときに Hello() 関数が呼び出され、その意図されたコードが実行されます。
さらに関数に引数を渡す必要がある場合は、以下に示すように、ラムダ式を使用して関数呼び出しをラップできます。
<code class="python">hi = Button(frame, text="Hello", command=lambda: Goodnight("Moon"))</code>
この場合、ラムダ式により Goodnight() 関数が確実に実行されます。ボタン宣言時に実行されるのではなく、ボタンがクリックされてコマンドが実行されるまで待機します。
以上がボタンの「コマンド」パラメータ関数はいつ実行されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。