Я пытаюсь написать код для игры с использованием Python и, похоже, не могу получить мои переменные из команды нажатия кнопки в словарные переменные для последующего использования , То, что я пытаюсь сделать, - запустить jingle_add() нажатием кнопки, выполнить некоторые вычисления, обновить дисплеи и вернуть значения деревьев, которые были использованы, и вернуться к соответствующим клавишам словаря. Я могу заставить код работать, если в jingle_add() я вызываю значения словаря напрямую, но я пытаюсь сжать свой код и использовать его в качестве шаблона для нескольких разных типов значений, которые будут сохранены в том же словаре, называя их разными кнопками. Тем не менее, с версией нижеприведенного кода я не могу заставить его запускаться вообще, и никаких очевидных ошибок не дается, только флаг на линии лямбда. Есть ли что-то, что мне не хватает в лямбда-звонке, или что-то, что я пропустил в ответ?Обновление значений в dict на Python внутри кнопки Tkinter
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 –