Автор обсуждает создание системы для управления результатами соревнований по легкой атлетике, начиная с классов `Athlete` и `Event`. Для эффективного доступа к спортсменам по номеру биба используется словарь. Класс `Event` изначально включает методы для добавления результатов и их финализации путем сортировки на основе результатов, но этот подход не работает для соревнований по полевым видам спорта, где более высокие значения лучше. Чтобы решить эту проблему, автор предлагает создать отдельные классы `TrackEvent` и `FieldEvent`, оба наследующиеся от общего класса `Event`. Чтобы предотвратить прямую инстанциацию класса `Event`, он преобразуется в абстрактный базовый класс (ABC) с помощью модуля `abc`. Подклассы ABC должны реализовывать метод `finalise_results`, обеспечивая правильную логику сортировки для соревнований по легкой атлетике. Класс `TrackEvent` сортирует результаты в порядке возрастания, а класс `FieldEvent` - в порядке убывания. Это обеспечивает правильную оценку в зависимости от типа соревнования.
thepythoncodingstack.com
The Python Coding Stack: And Now You Know Your ABC
Create attached notes ...
