Как отправить переменную вместе с нажатием кнопки, в декоратор callback, не прибегая к созданию глобальной переменной?

Для того чтобы передать переменную вместе с нажатием кнопки в декоратор callback без использования глобальных переменных, можно воспользоваться **замыканием (closure)**. Замыкание — это функция, которая запоминает значения в своем окружении.

Пример реализации с использованием замыкания:

import tkinter as tk

def create_callback(variable):
    def callback():
        print(f"Button clicked with variable: {variable}")
        # Действия, которые нужно выполнить при нажатии кнопки
    return callback

def main():
    root = tk.Tk()

    my_variable = "Hello, World!"

    my_callback = create_callback(my_variable)

    button = tk.Button(root, text="Click me", command=my_callback)
    button.pack()

    root.mainloop()

if __name__ == "__main__":
    main()

В данном примере create_callback создает функцию обратного вызова (callback), которая имеет доступ к переменной variable, переданной ей при создании. При нажатии кнопки будет вызвана функция callback, которая выведет значение переменной variable.

Таким образом, вы можете отправить переменную вместе с нажатием кнопки, используя замыкание, без необходимости создавать глобальные переменные.