Как передать результат функции (переменную) из одной функции в другую, не объявляя её глобальной в Python

Пишу бота Telegram на TelegramBotApi(telebot). Есть функция func1(callback), в которой происходит подключение к БД, получение списка пользователей и запись в переменную. Также в этой функции происходит вывод кнопок по данным, полученным из бд.

def func1(callback):
    con = fdb.connect(dsn=f'{ip}/4122:{path_to_bd}/MAIN.GDB',
                      user='SYSDBA', password='masterkey', charset='utf8')
    cur = con.cursor()
    nameuser = (f"SELECT ID,NAME FROM \"USER\" WHERE ID = {id_user};")
    cur.execute(nameuser)
    nameuser = cur.fetchone()
    ...
    return nameuser

И хочу передать значение переменной nameuser в следующую функцию, идущую после этой. Как я могу передать эту переменную в func2(callback) ? К примеру если попытаться вызвать в func2 переменную таким способом:

def func2(callback):
    nameuser = func1()
    ...

То будет выдавать ошибку, что пропущен один аргумент. Научите правильно передавать значение переменной, не объявляя переменную в global.

P.S. в Python только начинаю разбираться, тапками не кидаться.


Ответы (1 шт):

Автор решения: Alexey Trukhanov

Кажется, что Ваше решение почти правильное, только надо передать callback при вызове func1(), именно об этом и говорит ошибка о пропущенном аргументе.

def func2(callback):
    nameuser = func1(callback)
    ...
→ Ссылка