Найти в Дзене
Реальный Код

Объясняю про коллбэки на пальцах

Скрипт с таймером и коллбэками
Скрипт с таймером и коллбэками

Коллбэк (callback) – это обычная функция, но которая должна быть вызвана при каком-то событии. Для этого мы передаем наш коллбэк в некоторую функцию. Эта функция потом просто вызовет нашу функцию-коллбэк, которую мы ей передали.

Аналогия: мы звоним в клинику, а там нам отвечают, что все операторы заняты, и предлагают оставить свой номер, чтобы они перезвонили. Это и есть пример коллбэка (с английского, кстати, так дословно и переводится – перезвонить обратно или обратный вызов).

То есть мы оставили номер, на который нужно перезвонить, когда освободится оператор.

Также и в программировании: мы передаем функцию, которую нужно вызвать при наступлении некоторого события или при выполнении каких-то условий.

Пример

Мы написали функцию (1), которая имитирует работу таймера.

При срабатывании таймера мы хотим узнать об этом и как-то среагировать. Для этого в функцию таймера передается коллбэк, то есть функция, которую нужно вызвать
(3) по истечении заданного времени.

Также написали два коллбэка: (4) и (5).

В главной функции (6) запускаем два таймера, в которые передаем первый и второй наши коллбэки.

При срабатывании таймеров вызываются коллбэки: через 3 секунды первый, а потом через 5 секунд и второй. Таким образом мы узнаем, что время истекло, и можем сделать какие-то действия в нашей программе. В данном случае мы просто выводим текстовые сообщения.

Вывод работы скрипта:

-- start timer
-- timer end
Alarm
-- start timer
-- timer end
ALARM !!!

#python #junior #callbacks