私はPythonを使ってゲーム用のコードを書こうとしていますが、後で使用するためにボタンのクリックコマンドから変数を取得することができないようです。私がしようとしているのは、ボタンクリックでjingle_add()を実行し、いくつかの計算を実行し、表示を更新し、使用されたツリー値を返し、適切な辞書キーに戻します。 jingle_add()で辞書値を直接呼び出すと、コードを圧縮して、同じ辞書に保存される複数の異なるタイプの値のテンプレートとしてこれを使用しようとしている場合、異なるボタンでそれらを呼び出す。しかし、以下のバージョンのコードでは、実行することができず、明白なエラーはなく、ラムダラインのフラグだけです。私がラムダコールに欠けているもの、または返品で逃したものがありますか?Tkinterボタン内のPythonのdictの値を更新する
data = {'fans': 0, 'jingle': 0, 'jingle_cost': 15}
jingle_button = Button(win, text = "Make a jingle - +0.1 fans/sec", command = lambda: data['fans'], data['jingle_cost'], data['jingle'] = jingle_add(data['fans'], data['jingle_cost'], data['jingle']))
def jingle_add(fans, cost, building):
if fans >= cost:
fans -= cost
cost = round(cost * (1.07**building), 1)
building += 1
return fans, cost, building
誰もが望んでいる場合は、次の代替ではなく、関数内でそれが何をするかを定義し、コールバックとしての機能を使用することです私がしようとしていることをより深く理解するための完全なコードを確認するには、github.com/kari-fox/MixxMaster –