Класс не обязателен для каждой программы. Он пригодится, когда несколько связанных функций получают один и тот же объект. В примере с почтой функция подключения создаёт объект сервера, а функции поиска и загрузки писем и завершения сеанса получают его как аргумент.
После рефакторинга сервер хранится внутри объекта класса
IMAPChecker. Функции становятся методами: через объект можно войти, получить идентификаторы писем, загрузить письмо и отключиться. Данные и действия теперь собраны вместе.Для тренировки возьмите три-четыре функции, которым передаёте один объект, и соберите их в класс. Затем сравните оба варианта и проверьте, какой легче прочитать. В материале Python Morsels также разобрано, как класс обозначает смысл возвращаемых значений.
