J'aime la convention Java qui consiste à n'avoir qu'une seule classe publique par fichier, même s'il y a parfois de bonnes raisons de mettre plus d'une classe publique dans un seul fichier. Dans mon cas, j'ai des implémentations alternatives de la même interface. Mais si je les plaçais dans des fichiers séparés, j'aurais des noms redondants dans les déclarations d'importation (ou des noms de modules trompeurs) :
import someConverter.SomeConverter
alors que someConverter
serait le nom du fichier (et du module) et SomeConverter
le nom de la classe. Cela me semble assez inélégant. Mettre toutes les classes alternatives dans un seul fichier conduirait à une déclaration d'importation plus significative :
import converters.SomeConverter
Mais je crains que les fichiers deviennent assez volumineux si je place toutes les classes connexes dans un seul fichier de module. Quelle est la meilleure pratique Python dans ce cas ? Une classe par fichier est-elle inhabituelle ?
9 votes
Lorsque vous aurez à gérer un projet composé de 10 000 classes, vous serez heureux de pouvoir trouver une classe (publique) par son nom de fichier (et de paquetage) au lieu de devoir chercher dans le contenu de tous les fichiers. C'est probablement la raison pour laquelle Java impose qu'il n'y ait qu'une seule classe publique par fichier et que le nom du fichier soit le nom de la classe.