Как достать переменную из функции Python? Tkinter
entry = Entry(windowApi,width=45,bd=3, textvariable= api)
entry.pack(anchor="w", padx=0, pady=20)
данный код находится в функции, для вызова вспомогательного окна подскажите как сделать чтобы переменная api отображалась и вне функции Примерно так ⬇
entry = Entry(windowApi,width=45,bd=3, textvariable= api)
#⬆ это меню для ввода api
entry.pack(anchor="w", padx=0, pady=20)
print(api) # и тут выводился введённый мною api
На сайте нашёл подобный вариант решения⬇, но как адаптировать под своё окно не знаю
i = 10
def a():
global i
i = 2
a() # i вместо 10 равно 2.
Ответы (2 шт):
К сожаленью, первый комментатор прав, вы почти не показали хоть часть вашего кода, за который можно зацепиться. Но если я правильно понял ваш вопрос, то, то, что вам нужно сделать — это добавить в начало функции выражение global *variable*:
api = ''
def func():
global api
api = "qwerty12345"
entry = Entry(windowApi,width=45,bd=3, textvariable= api)
entry.pack(anchor="w", padx=0, pady=20)
print(api)
Тем самым вы объявляете, что переменная не ограничивается всего лишь в функции, и изменяется для всего кода.
import tkinter as tk
def func():
entry = tk.Entry(windowApi, width=45,bd=3, textvariable=api)
entry.pack(anchor="w", padx=0, pady=20)
def getResult():
result = api.get()
print(result)
windowApi = tk.Tk()
api = tk.StringVar(value="qwerty12345")
func()
button = tk.Button(windowApi, text='OK', command=getResult)
button.pack()
windowApi.mainloop()
Переменная api объявляется как StringVar, после чего она будет видна за пределами функции. Получить из нее значение можно методом get(). Возможно это поможет в решении вопроса...