Quelle est la convention pour nommer des interfaces et des classes abstraites en python? Pep 8 ne discute pas de cela. Par exemple, en Java, les interfaces sont souvent nommées par un préfixe "i". Dans PHP (avant les espaces de noms), les classes abstraites sont généralement nommées avec un suffixe "_AbRact". P>
(Je me rends compte que les pythonistes ne sont pas désireux d'interfaces, et c'est peut-être la raison pour laquelle je ne trouve pas beaucoup de consensus sur ce sujet. Mais l'utilisation d'interfaces et de classes abstraites n'est pas ma question.) P>
3 Réponses :
Je ne suis pas au courant d'aucune normes communautaires à cet égard à cet égard, à cet égard de Pep8 , qui ne résout pas cela spécifiquement. P>
Je suggérerais de faire tout ce que votre équipe est le plus à l'aise, mais surtout soyez cohérent em>. p>
Je pense nommer une interface avec un préfixe par exemple: p> Quelques années, j'ai utilisé zope Interfaces. J'ai remarqué que la plupart des codesbases ont utilisé cette convention. Notre équipe a fait aussi. P> Nous avons préféré VIOO VS. FOOININTERFACE ou IFOOINTORFACE P> P> i code> est parfaitement acceptable.
Je regarderais vers la tour numéro (de Le consensus de ceci est de simplement les nommer tel quel, et laissez la compréhension humaine les reconnaître comme abstrait. P> numéros code> < / a>), la collection ABCS (de
collections.abc code >
), ou l'autre core ABCS (telle que importateurLib.abc code>
) pour le moyen "pythonique" de faire cela. p>
Les bibliothèques de python plus anciennes n'ont pas suivi Pep8. En regardant les plus récentes bibliothèques telles que Asyncio One voit des cours comme AbstractrenteventLoop, baseprotocol (classe de base commune pour interfaces de protocole), protocole (interface pour protocole de flux). Donc, pas de préfixe 'i'.
Ils sont les mêmes que des classes typiques. Autant que je sache, il n'y a aucune règle supplémentaire pour cela.
Je suis programmée en Python depuis 2,2 ans et je n'ai pas vu de conventions largement utilisées pour l'une ou l'autre.
Dupliquer possible: Stackoverflow.com/Questtions/7809287/...
J'utilise i pour l'interface comme C ++: iPerson et suffixe abstrait: personnage de personnage