Как достать переменную из функции 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 шт):

Автор решения: FanaticExplorer

К сожаленью, первый комментатор прав, вы почти не показали хоть часть вашего кода, за который можно зацепиться. Но если я правильно понял ваш вопрос, то, то, что вам нужно сделать — это добавить в начало функции выражение 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)

Тем самым вы объявляете, что переменная не ограничивается всего лишь в функции, и изменяется для всего кода.

→ Ссылка
Автор решения: HerrAskin
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(). Возможно это поможет в решении вопроса...

→ Ссылка