Как передать результат функции (переменную) из одной функции в другую, не объявляя её глобальной в 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 шт):
Кажется, что Ваше решение почти правильное, только надо передать callback
при вызове func1()
, именно об этом и говорит ошибка о пропущенном аргументе.
def func2(callback):
nameuser = func1(callback)
...