Я знаю, что мое решение не очень популярно с питонской точки зрения, но я предпочитаю использовать подход Java одного модуля -> одного класса с модулем, названным как класс.
Я понимаю причину стиля Python, но мне не очень нравится иметь очень большой файл, содержащий много классов. Мне трудно просматривать, несмотря на складывание.
Другая причина - контроль версий: наличие большого файла означает, что ваши коммиты имеют тенденцию концентрироваться на этом файле. Это может потенциально привести к большему количеству конфликтов, которые должны быть разрешены. Вы также теряете дополнительную информацию из журнала, что ваш коммит изменяет определенные файлы (следовательно, включает определенные классы). Вместо этого вы видите изменение в файле модуля, только комментарий коммита, чтобы понять, какая модификация была сделана.
Подводя итог, если вы предпочитаете философию питона, воспользуйтесь предложениями других постов. Если вместо этого вы предпочитаете java-подобную философию, создайте Nib.py, содержащий класс Nib.