web-dev-qa-db-fra.com

Les noms de fichiers de classe Python doivent-ils également être camelCased?

Je sais que les classes en Python sont généralement classées avec camelCase.

Est-ce également une convention normale que le fichier contenant la classe soit également camelCase'd, surtout si le fichier ne contient que la classe?

Par exemple, la classe className devrait-elle également être stockée dans className.py au lieu de class_name.py?

17
m4jesticsun

La réponse suivante provient en grande partie de cette réponse .

Si vous souhaitez suivre PEP 8, vous devez vous en tenir aux noms en minuscules, avec des traits de soulignement en option.

Pour citer les conventions de nommage de PEP 8 pour les packages et modules :

Les modules doivent avoir des noms courts en minuscules. Les traits de soulignement peuvent être utilisés dans le nom du module si cela améliore la lisibilité.

Et pour les cours:

Les noms de classe doivent normalement utiliser la convention CapWords.

Voir cette réponse pour la différence entre un module, une classe et un package:

Un module Python est simplement un fichier source Python, qui peut exposer des classes, des fonctions et des variables globales.

14

Ma question est la suivante: est-il également normal que le fichier soit contient la classe aussi être camelCase'd surtout si le fichier seulement contient la classe

Réponse courte: non.

Réponse plus longue: devrait être tout en minuscule et souligné au besoin.

A partir de PEP8 "Nom des packages et des modules" :

Les modules doivent avoir des noms courts en minuscules. Les soulignés peuvent être utilisé dans le nom du module s'il améliore la lisibilité. Paquets Python devrait également avoir des noms courts en minuscules, bien que l’utilisation de underscores est découragé.

Si vous ne savez pas ce que module est:

Un module est un fichier contenant des définitions et des instructions Python. Le nom de fichier est le nom du module avec le suffixe .py ajouté.

2
Jack

La convention officielle est d'utiliser toutes les minuscules pour les noms de fichiers (comme d'autres l'ont déjà indiqué). La raison, cependant, n'a pas été mentionnée ...

Etant donné que Python fonctionne sur plusieurs plates-formes (et il est courant de l’utiliser de cette manière), mais l’utilisation de la casse des systèmes de fichiers varie, il est préférable d’éliminer simplement les cas alternatifs. Sous Linux, par exemple, il est possible d’avoir MyClass.py et myclass.py dans le même répertoire. Ce n'est pas le cas sous Windows!

Sur une note connexe, si vous avez MyClass.py et myclass.py dans un dépôt git, ou même que vous modifiez simplement le boîtier sur le même fichier, git peut agir de manière funky lorsque vous effectuez un Push/Pull à partir de Linux et Windows.

Et, alors qu’il aborde à peine le sujet, mais dans le même esprit, SQL présente les mêmes problèmes, dans lesquels différentes normes et configurations peuvent ou non autoriser les majuscules sur les noms de table.

Personnellement, je trouve plus agréable de lire TitleCasing/camelCasing même sur les noms de fichiers, mais lorsque vous faites tout ce qui peut fonctionner sur plusieurs plates-formes, il est plus sûr de ne pas le faire. 

1
BuvinJ