En Python, les identificateurs (noms de variables, de fonctions, de classes, etc.) doivent être définis selon des règles. Les noms qui ne respectent pas les règles ne peuvent pas être utilisés comme identificateurs et entraîneront une erreur.
Les informations suivantes sont fournies ici.
- Caractères qui peuvent et ne peuvent pas être utilisés dans les identifiants (noms)
- Caractères ASCII
- Caractère Unicode
- normalisation (par exemple, en mathématiques)
- Vérifie si la chaîne est un identifiant valide :
isidentifier()
- Mots qui ne peuvent pas être utilisés comme identifiants (noms) (mots réservés)
- Les mots qui ne doivent pas être utilisés comme identifiants (noms)
- Conventions de dénomination pour PEP8
La description suivante est donnée dans Python 3, et peut être différente dans Python 2.
- Caractères qui peuvent et ne peuvent pas être utilisés dans les identifiants (noms)
- Vérifier si la chaîne est un identifiant valide : isidentifier()
- Mots qui ne peuvent pas être utilisés comme identifiants (noms) (mots réservés)
- Les mots qui ne doivent pas être utilisés comme identifiants (noms)
- Conventions de dénomination pour PEP8
Caractères qui peuvent et ne peuvent pas être utilisés dans les identifiants (noms)
Indique les caractères qui peuvent et ne peuvent pas être utilisés comme identifiants (noms).
En outre, bien qu'il y ait beaucoup de choses à écrire, tout ce que vous devez retenir, c'est ce qui suit.
- Utilisez des lettres majuscules et minuscules, des chiffres et des caractères de soulignement.
- La première (première) lettre ne peut pas être un chiffre.
Caractères ASCII
Les caractères ASCII qui peuvent être utilisés comme identifiants (noms) sont les alphabets majuscules et minuscules (A~Z,a~z), les chiffres (0~9) et les traits de soulignement (_). L'alphabet est sensible à la casse.
AbcDef_123 = 100
print(AbcDef_123)
# 100
Les symboles autres que les caractères de soulignement ne peuvent pas être utilisés.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
En outre, les chiffres ne peuvent pas être utilisés au début (première lettre).
# 1_abc = 100
# SyntaxError: invalid token
Les tirets bas peuvent également être utilisés au début.
_abc = 100
print(_abc)
# 100
Toutefois, notez qu'un trait de soulignement au début peut avoir une signification particulière.
Caractère Unicode
Depuis Python 3, les caractères Unicode peuvent également être utilisés.
変数1 = 100
print(変数1)
# 100
Tous les caractères Unicode ne peuvent pas être utilisés, et selon la catégorie Unicode, certains ne peuvent pas être utilisés. Par exemple, les symboles tels que les signes de ponctuation et les pictogrammes ne peuvent pas être utilisés.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Voir la documentation officielle pour les codes de catégorie Unicode qui peuvent être utilisés.
Dans de nombreux cas, il n'y a aucun avantage à utiliser des caractères chinois, etc., simplement parce que les caractères Unicode peuvent également être utilisés (sans erreur).
normalisation (par exemple, en mathématiques)
Les caractères Unicode sont convertis à la forme normalisée NFKC pour l'interprétation. Par exemple, les alphabets pleine largeur sont convertis en alphabets demi-largeur (caractères ASCII).
Notez que même si le code source montre un affichage différent, il est considéré comme le même objet et sera écrasé.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Vérifier si la chaîne est un identifiant valide : isidentifier()
La méthode isidentifier() permet de vérifier si une chaîne de caractères est valide ou non en tant qu'identifiant.
Il renvoie true (vrai) s'il est valide en tant qu'identifiant, et false (faux) s'il n'est pas valide.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Mots qui ne peuvent pas être utilisés comme identifiants (noms) (mots réservés)
Certains mots (mots réservés) ne peuvent pas être utilisés comme identifiants, même s'il s'agit de chaînes de caractères valides comme identifiants (noms).
Puisqu'un mot réservé est une chaîne valide en tant qu'identifiant, isidentifier() renvoie vrai, mais une erreur se produit s'il est utilisé comme identifiant.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Pour obtenir une liste des mots réservés et vérifier si une chaîne de caractères est un mot réservé, utilisez le module keyword de la bibliothèque standard.
Les mots qui ne doivent pas être utilisés comme identifiants (noms)
Les noms des fonctions intégrées de Python, par exemple, peuvent être utilisés comme identifiants, de sorte que vous pouvez leur attribuer de nouvelles valeurs en tant que variables.
Par exemple, len() est une fonction intégrée qui renvoie le nombre d'éléments dans une liste ou le nombre de caractères dans une chaîne de caractères.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Si vous attribuez une nouvelle valeur à ce nom len, la fonction originale sera écrasée et deviendra inutilisable. Notez qu'aucune erreur ou avertissement ne sera imprimé lors de l'assignation d'une nouvelle valeur.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Une autre erreur courante est d'utiliser list = [0, 1, 2], ce qui rend impossible l'utilisation de list(). Faites attention.
Conventions de dénomination pour PEP8
PEP est l'acronyme de Python Enhancement Proposal, un document qui décrit les nouvelles fonctionnalités et autres aspects de Python.
PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment.
PEP 1 — PEP Purpose and Guidelines | Python.org
PEP8 est le huitième, et il décrit le “Style Guide for Python Code”, c'est-à-dire le guide de style pour Python.
Les conventions de nommage sont également mentionnées.
Voir le lien ci-dessus pour plus de détails, mais à titre d'exemple, le style de rédaction suivant est recommandé.
- Module
lowercase_underscore
- Minuscule + trait de soulignement
- Paquet
lowercase
- toutes les lettres minuscules
- Classes, exceptions
CapitalizedWords
(CamelCase
)- Mettez la première lettre d'un mot en majuscule, sans soulignement.
- Fonctions, variables et méthodes
lowercase_underscore
- Minuscule + trait de soulignement
- constant
ALL_CAPS
- Lettres majuscules + trait de soulignement
Toutefois, si votre organisation ne dispose pas de ses propres conventions de dénomination, il est recommandé de suivre la PEP8.