Si la convention en Python est de capitaliser les classes, alors, pourquoi est-list() pas en majuscule? N'est-il pas une classe?
Souvent quand je vois des définitions de classe class Foo:
, je vois toujours commencer avec des majuscules.
Cependant, n'est pas une liste []
ou une dict {}
ou quelque autre type, une classe? D'ailleurs, tout ce qui est tapé dans le Python IDLE qui est un mot-clé qui est automatiquement codé en couleur en violet (avec la Fenêtre de la distribution binaire), est elle-même une classe, non?
Comme spam = list()
spam
est maintenant une instance d'un list()
Donc ma question est, pourquoi Python nous permettent tout d'abord de faire quelque chose comme list = list()
quand plus personne, sans doute, est-ce que. Mais aussi, pourquoi n'est-il pas list = List()
Les développeurs de la langue décidez de ne pas utiliser toute sorte de convention, s'il est vrai que la plupart de Python pour les programmeurs n'nom de leurs cours en tant que tels?
double possible de Python codage des normes et des meilleures pratiques
Oui, je peux voir pourquoi vous pensez que tellement basé sur mon choix de titre et les balises. Le problème est que j'ai été plus confus pourquoi
list()
est alors pas la majuscule. C'est là l'objectif de la question a été prévu.OriginalL'auteur Leonardo | 2013-02-20
Vous devez vous connecter pour publier un commentaire.
Oui, une majuscule initiale classes sont de la convention, comme indiqué dans PEP 8.
Il est exact que de nombreux builtin types de non respect de cette convention. Ce sont des rescapés de stades antérieurs de Python quand il y a une grande différence entre les classes définies par l'utilisateur et builtin types. Cependant, il semble encore que builtin ou types d'extension écrite en C sont plus susceptibles d'avoir des noms minuscules (par exemple,
numpy.array
, pasnumpy.Array
).Néanmoins, la convention est d'utiliser la majuscule initiale pour vos propres classes dans le code Python.
OriginalL'auteur BrenBarn
PEP8 est l'endroit où aller pour le style de code.
Pour répondre à votre question de savoir pourquoi
list = list()
est valide,list
est simplement un nom dans l'espace de noms global, et peut être remplacé comme toute autre variable.datetime.date
classe?pratiquement tout peut être changé en Python, parce que tout est un nom qui peut pointer vers ce que vous voulez, elle aussi.
OriginalL'auteur Volatility
Je pense que la seule personne qui vraiment connaît l'ensemble de la réponse à votre question est la BDFL. La Convention en dehors des types mis en œuvre en C est certainement en majuscules (comme indiqué dans la PEP8). Toutefois, il est intéressant de noter que pas tous de niveau C, les types de respecter la convention (c'est à dire
Py_True
,Py_False
) ne le font pas. Oui, ils sont des constantes à Python-niveau, mais ils sont tousPyTypeObject
s. Je serais curieux de savoir si c'est la seule distinction et, par conséquent, à la différence de la convention.OriginalL'auteur Demian Brecht
Tous sont en fin de compte, les décisions de conception.
https://www.python.org/dev/peps/pep-0020/ dit (essayez aussi
>>> import this
)Et ce serait un cas particulier.
https://www.python.org/dev/peps/pep-0008/#class-names dit:
Toutes les autres classes doivent utiliser le CapWorlds convention. Comme
list
,object
, etc sont intégrés dans les noms, ils suivent ce distinct de la convention.OriginalL'auteur serv-inc
Selon PEP 8, une belle série de lignes directrices pour les développeurs Python:
PEP 8 est réalisé en Python de développement pour la bibliothèque standard dans les principaux Python de distribution, mais ils sont sensibles lignes directrices à suivre.
OriginalL'auteur Michael Foukarakis