Мне нравится соглашение Java о наличии одного открытого класса для каждого файла, даже если иногда есть веские причины помещать более одного публичного класса в один файл. В моем случае у меня есть альтернативные реализации одного и того же интерфейса. Но если бы я поместил их в отдельные файлы, у меня были бы избыточные имена в операторах импорта (или вводящие в заблуждение имена модулей):
import someConverter.SomeConverter
тогда как someConverter
будет именем файла (и модуля) и someConverter
именем класса. Это выглядит довольно нелестно для меня. Чтобы поместить все альтернативные классы в один файл, вы получите более значимый оператор импорта:
import converters.SomeConverter
Но я боюсь, что файлы станут довольно большими, если я поместил все связанные классы в один файл модуля. Что такое лучшая практика Python? Является ли один класс для каждого файла необычным?