Как получить значение функции, вызываемой через tkinter.Button и записать ее в новую переменную? (Python)
Есть кнопка "загрузить токены",
load_tokens_btn = tk.Button(text="Загрузить файл с txt токенами", command=open_tokens)
при нажатии на которую вызывается функция open_tokens()
def open_tokens():
op = fd.askopenfilename()
file = fileinput.input(op)
tokens = [x for x in file]
return tokens
и появляется диалоговое окно для открытия файла.
юзер выбирает txt файл, этот txt файл читается и записывается в список tokens внутри функции open_tokens(). Сам вопрос - как "достать" этот список tokens из функции open_tokens() и засунуть этот список tokens в "глобальный код"? Потому что мне нужно в дальнейшем работать со списком tokens.
return tokens не работает, да и возвращать ему значение некуда.
Ответы (2 шт):
Автор решения: DGDays
→ Ссылка
Есть 2 пути
- Создать класс, в него запихнуть само окно и функцию открытия окна. Далее через
self.tokensсделать переменную для чтения её из класса и можно дальше, внутри класса или извне обращаться к ней также(извнеselfменяем на переменную, которая является экземпляром класса) - Просто создать
tokensкак глобальную переменную
Автор решения: Cmer4
→ Ссылка
Создать массив вне функции (после импорта), и в функции просто изменять эту переменную:
tokens = []
# остальной код
def open_tokens():
global tokens # чтобы не создать новую локальную переменную в следующей строчке
tokens = [x for x in file]