Как поставить переменную в функцию
Доброе утро! Возникла проблема - как мне передать переменную, назначенную в другой функции в нужную функцию? Концепт следующий - человек вводит свое ФИО. После этого, бот проверяет его наличие в БД. Если фамилия есть - все ок. Но если нет - задача по занесению человека в бд заносится в другую функцию. Вопрос - как передать фио в другую функцию, если переменная с ФИО лежит в другой функции?
Код:
cur = await conn.cursor()
teled = message.from_user.id
sql = "SELECT name FROM users WHERE teleid=(%s)"
await cur.execute(sql, (teled))
row = await cur.fetchone()
if row is not None:
name = row[0]
await Form.name.set()
async with state.proxy() as id:
id = teled
await message.answer("✅ Ваши данные имеются в базе данных. Можно приступать к оплате!", reply_markup=next)
await Form.next()
@dp.message_handler(row is None, state=Form.name) #<---- тут и возникает мелкая проблема. Если row - none, то необходимо запустить следующую функцию
async def process_name(message: types.Message, state: FSMContext):
async with state.proxy() as data:
Я начинающий практикант, не бейте сильно за тупость
Ответы (1 шт):
Вы можете просто запустить функцию с уже переданной в нее переменной, например:
function(your_variable), а в в функции function (при создании), добавить переменную которая она будет принимать.
наглядно:
def function(your_variable):
pass
# your code is here ;)
def checking():
database = ["monkey8", "admin"]
user_name = input("username ")
if user_name in database:
print("Все отлично, вы зарегистрированы")
else:
function(user_name)
# тут происходит код или заупскается функция, в случае которой пользователя в списке нет
Просто запускайте функцию с уже переданной в нее переменной. В таком случае при запуске функции checking переменная user_name будет переданна в function, если она не состоит в списке database
в вашем случае достаточно просто добавить в код else.