Справочник · модуль 13 «Интернет и API»

Состояние диалога

Состояние — то, что бот помнит о каждом человеке: например, на каком он шаге. Его хранят в словаре, где ключ — номер чата.

Сравнение из жизни

Как закладка в книге у каждого читателя.

Пример

states = {}
for chat_id in [7, 9, 7]:
    state = states.setdefault(chat_id, {"step": 0})
    state["step"] = state["step"] + 1
    print(chat_id, state)
Результат
7 {'step': 1}
9 {'step': 1}
7 {'step': 2}

Учитель в уроке Бот ведёт много разговоров сразу. Ему нужно помнить, на каком шаге каждый человек. Для этого заводят словарь: ключ — номер чата, значение — состояние. Метод setdefault создаёт состояние, если его ещё нет. Здесь три сообщения: два от первого человека и одно от второго. У первого шаг дошёл до двух, у второго — до одного. Они не мешают друг другу.

Запомнить

Состояние диалога — как закладка в книге у каждого читателя. Бот помнит, где остановился каждый.

Тема из урока 13.5 «Проект: чат-бот» курса PythonAZ.