🔵 Telegram боти. Сигнатура обробника оновлень.
Як я вже зазначав першим параметром обробника оновлень обов'язково має бути об'єкт напряму асоційований з оновленням, у нього може бути будь-яке ім'я але він буде відповідного класу.
@router.message(Command("start"))
async def start_handler(message: Message):
...
В даному випадку це клас Message
Крім першого обов'язкового параметру є ще необов'язкові параметри.
Наприклад ми можемо просто додати параметр bot: Bot у функцію обробник:
@router.message(Command("start"))
async def start_handler(message: Message, bot: Bot):
... # код використання bot
І це буде прауювати. Параметр bot: Bot буде автоматично переданий при виклику обробника. Тут важлива точна назва параметра так як він передається по "ключу". Аiogram3 для реалізації цього моменту під капотом використовує introspection (модуль inspect)
Серед необов'язкових параметрів також може передаватись наш власний об'єкт через механізм 🔗 Dependency injection .Це може бути якійсь налаштування, сесія БД, якийсь кеш.
#tg_bots
👍1
273 ·