Задать вопрос
@reizer_1

Вызов своей функции в aiogram?

Я знаю как вызывать функцию из функции, но в aiogram немного запутался. Есть повторяющийся код:
await message.answer('Вы можете написать нашему менеджеру @........  ', reply_markup=ReplyKeyboardRemove())
   await state.finish()

Его я хотел реализовать вынесением в отдельную функцию пример, но не знаю, что передавать в аргументы чтобы правильно отработал message.answer :
async def help_fun(??????????????):
               await message.answer('Вы можете написать нашему менеджеру @.........  ', reply_markup=ReplyKeyboardRemove())
               await state.finish()

В самом коде функция вызывается так и что-то тоже нужно передавать в аргумент:
async def var_tea(message : types.Message, state: FSMContext):
        if message.text == '/help':
                help_fun(???????????)
  • Вопрос задан
  • 2783 просмотра
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 4
mmmaaak
@mmmaaak
если внутри функции не нужны никакие параметры, то ничего передавать и не нужно
Ответ написан
@Nitromannn
Аргументом тут является message.
Пример вызова:
await func(message)
Желаю успехов!
Ответ написан
Комментировать
@NoName45342
Начинающий программист)
reizer_1, ты так и не нашел ответ на свой вопрос? Столкнулся с такой же проблемой.
Ответ написан
@Moonmagik
Надеюсь это кому-то поможет:
aigram 3.3.0

file 1
from aiogram import Bot
from aiogram.types import Message
from aiogram.fsm.context import FSMContext
from handlers.register import start_register


async def get_start(m: Message, bot: Bot, state: FSMContext):
    if ....:
         ....
    else:
        await start_register(m, bot, state)


Обращаю внимание, что в file 1 идет ссылка на модуль start_register, который находится в handlers.register

handlers.register
from aiogram.types import Message, 
from aiogram.fsm.context import FSMContext
from aiogram import Bot

async def start_register(m: Message, bot: Bot, state: FSMContext):
    await bot.send_message(m.from_user.id, f'Как ваше имя для регистрации?')
    await state.set_state(RegisterUserState.regName)


то есть в file 1 передаём переменные для модуля start_register
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы