Python - возвращение из обратного вызова Tkinter

Как я могу получить возвращенный объект из функции, которая выполняется как обратный вызов Tkinter?

import Tkinter as Tk
from functools import partial

def square(x):
    return x*x

root = Tk.Tk()
var = Tk.IntVar(root, value=0) #the variable the gets passed to the class call
menu = Tk.OptionMenu(root, var, *[0,1,2,3,4,5]) #a drop-down list to choose a value for the variable
menu.pack()
button = Tk.Button(root, text='click', command = partial(square,var.get())) #a button that calls the class
button.pack()
root.mainloop()

Очевидно, это упрощенный пример. В действительности функция, вызываемая кнопкой, будет возвращать объекты, которые я хочу добавить в список объектов, которые будут храниться в основном пространстве имен Python для дальнейших операций.

В любом случае, здесь пользователь может выбрать аргумент для функции, используя графический интерфейс, и нажать кнопку, которая будет выполнять функцию. Однако возвращаемое значение функции, похоже, обречено на потерю в эфире, поскольку обратный вызов не принимает возвраты. Можно ли это преодолеть без использования уродливогоglobal в определенииsquare(x)?

Ответы на вопрос(3)

Ваш ответ на вопрос