Организация классов Python в модулях и / или пакетах

Мне нравится соглашение Java о наличии одного общедоступного класса для каждого файла, даже если иногда есть веские причины поместить более одного общедоступного класса в один файл. В моем случае у меня есть альтернативные реализации того же интерфейса. Но если бы я поместил их в отдельные файлы, я d имеют повторяющиеся имена в операторах импорта (или вводящие в заблуждение имена модулей):

import someConverter.SomeConverter

, тогда как someConverter будет именем файла (и модуля), а SomeConverter - именем класса. Мне это кажется довольно неэлегантным. Помещение всех альтернативных классов в один файл привело бы к более значимому оператору импорта:

import converters.SomeConverter

Но я боюсь, что файлы станут довольно большими, если я помещу все связанные классы в один файл модуля. Какая здесь лучшая практика Python? Один класс на файл необычен?

56
задан deamon 2 October 2010 в 08:47
поделиться