2. Webhooks¶
2.1. Overview¶
2.2. Using handle_update()¶
Функция handle_update()- самая главная функция в библиотеке pywood. Ее задача- обработать переданный ей объект обновления.
Функция имеет следующий вид:
-
handle_update
(update, states, state_getter, state_attrs=None)¶
2.2.1. importing¶
Функция handle_update() находиться в модуле __init__ библиотеки pywood, поэтому вы должны импортировать ее так:
2.2.2. Arguments¶
2.2.2.1. update argument¶
2.2.2.2. states argument¶
2.2.2.3. state_getter argument¶
state_getter должен представлять собой функцию, принимающую update.
Данная функция обязана возвратить (один из трех вариантов):
- строку, являющуюся названием текущего состояния
- класс текущего состояния
- кортеж из двух элементов, первый из которых- строка, являющаяся названием текущего состояния, второй- данные, которые будут добавлены в виде аттрибута state_data к экземпляру объекта состояния
Рассмотрим эти три варианта.
2.2.2.3.1. Функция возвращает строку¶
2.2.2.3.2. Функция возвращает класс¶
2.2.2.3.3. Функция возвращает кортеж¶
Note
Обратите внимание, что в примере выше метод handle() имеет аргумент data. В него будут переданы данные переданные в функцию handle_update() виде аргумента data.
В методе handle() мы также обращаемся к аттрибуту self.state_data, который содержит второй элемент кортежа, который возвращает функция get_curr_state()
В дополнение к этому, объект класса State будет также иметь аттрибуты, определенные аргументом state_attrs функции handle_update()
2.2.2.4. state_attrs argument¶
картинка
Warning
Запрещено добавлять аттрибут с именем state_data, т.к. он будет заменен