Как сделать Правильный обработчик команд?

Sophia_Wagner

Новичок
Пользователь
Июл 15, 2022
1
0
1
Всем привет. Делаю бота и пытаюсь понять как сделать правильный и удобны обработчик команд, которые вводят пользователи. Кто может подсказать или скинуть пример кода? Просто на ифах неудобный и как мне кажется, неправильный вариант
Python:
example_message = "/комманда55"

if example_message[0] == "/":
    if example_message == "/комманда1":
        pass
    if example_message == "/комманда2":
        pass
...
    if example_message == "/комманда55":
        pass

Чисто пример только что написанный с телефона, можно сделать сложнее и разбить на функции.. но просто на ифах это бред по моему и есть способы лучше, а если в командах будут аргументы, то это вообще ппц.. подскажите как сделать правильно
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
Обычно в библиотеках для ботов предусмотрен свой способ обработки команд, но можно например так:

Python:
# python 3.10+
example_message = "/комманда55"

match example_message:
    case "/комманда1":
        pass
    case "/комманда2":
        pass
    case "/комманда3":
        pass
    case "/комманда55":
        pass

или так:
def answer():
print('hello')

Python:
example_message = "/комманда55"
commands = {
"/комманда1": lambda: print(1),
"/комманда2": answer,
"/комманда55": exit,
}

if example_message[0] == "/":
commands[example_message]()
 
  • Мне нравится
Реакции: Sophia_Wagner

Форум IT Специалистов