Ich versuche, Code für ein Spiel mit Python zu schreiben, und scheint nicht in der Lage zu sein, meine Variablen aus dem Button-Befehl in die Wörterbuchvariablen zur späteren Verwendung zu bringen . Was ich versuche, ist, jingle_add() bei einem Klick auszuführen, einige Berechnungen ausführen zu lassen, die Anzeigen zu aktualisieren und die verwendeten Baumwerte zurück in die entsprechenden Wörterbuchschlüssel zu bringen. Ich kann den Code zum Funktionieren bringen, wenn ich in der jingle_add() die Wörterbuchwerte direkt anrufe, aber ich versuche, meinen Code zu komprimieren und diesen als eine Vorlage für mehrere verschiedene Arten von Werten zu verwenden, die in demselben Wörterbuch gespeichert werden, sie mit verschiedenen Knöpfen anruft. Mit der unten stehenden Version des Codes kann ich sie jedoch überhaupt nicht ausführen und es werden keine offensichtlichen Fehler angezeigt, nur ein Flag an der Lambda-Zeile. Gibt es etwas, das mir beim Lambda-Aufruf fehlt oder etwas, das ich bei der Rückkehr vermisst habe?Aktualisieren von Werten in einem Dict auf Python innerhalb einer Tkinter-Schaltfläche
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
Wenn jemand will, Um den vollständigen Code zu sehen, um ein besseres Verständnis dessen zu bekommen, was ich versuche, ist es unter github.com/kari-fox/MixxMaster verfügbar. –