Skip to content

Noms de variables valides et règles de nommage en Python

En Python, les identifiants (= noms de variables, noms de fonctions, noms de classes, etc.) doivent être définis selon des règles. Les noms qui ne suivent pas les règles ne peuvent pas être utilisés comme identifiants.

Cet article décrit le contenu suivant.

  • Caractères valides pour les identifiants (= noms)
  • Vérifiez si la chaîne est un identifiant valide :isidentifier()
  • Mots qui ne peuvent pas être utilisés comme identificateurs : Mots et mots-clés réservés
  • Mots qui ne doivent pas être utilisés comme identifiants
  • Conventions de nommage (PEP8)

Ce qui suit concerne Python 3 et peut être différent pour Python 2.

Caractères valides pour les identifiants (= noms)

Ici, les caractères qui peuvent et ne peuvent pas être utilisés pour les identificateurs (= noms de variables, noms de fonctions, noms de classes, etc.) sont affichés.

Fondamentalement, rappelez-vous simplement ce qui suit.

  • Les alphabets majuscules et minuscules, les chiffres et le trait de soulignement (_) peuvent être utilisés.
  • Les nombres ne peuvent pas être utilisés comme premier caractère.

Les caractères non alphabétiques, tels que les caractères Kanji, peuvent être utilisés, mais ne doivent pas l’être à moins d’avoir une bonne raison de le faire.

ASCII

Les caractères ASCII pouvant être utilisés pour les identificateurs sont les alphabets majuscules et minuscules (A~Z, a~z), les nombres (0~9) et le trait de soulignement (_).

AbcDef_123 = 100
print(AbcDef_123)
# 100

Les symboles autres que le trait de soulignement ne peuvent pas être utilisés.

# AbcDef-123 = 100
# SyntaxError: can't assign to operator

Les chiffres ne peuvent pas être utilisés comme première lettre.

# 1_abc = 100
# SyntaxError: invalid token

Le trait de soulignement peut être utilisé pour la première lettre.

_abc = 100
print(_abc)
# 100

Notez que le trait de soulignement au début peut avoir une signification particulière.

Unicode

Dans Python 3, les caractères Unicode tels que Kanji et Hiragana peuvent être utilisés.

変数その1 = 100
print(変数その1)
# 100

Tous les caractères Unicode ne peuvent pas être utilisés. Par exemple, vous ne pouvez pas utiliser d’emoji.

# ☺ = 100
# SyntaxError: invalid character in identifier

Voir la documentation officielle pour les codes de catégorie Unicode qui peuvent être utilisés.

Vérifiez si la chaîne est un identifiant valide :isidentifier()

Vous pouvez vérifier si une chaîne est un identifiant valide ou non avec la méthode isidentifier() de la chaîne str.

Elle renvoie True si la chaîne est un identifiant valide et False si ce n’est pas le cas.

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 identificateurs : Mots et mots-clés réservés

Les mots et mots-clés réservés sont valables comme identifiants mais ne peuvent pas être utilisés comme identifiants ordinaires.

Notez que isidentifier() renvoie True car les mots réservés et les mots clés sont des chaînes valides pour les identifiants, mais une erreur est générée si vous les utilisez comme identifiants (= noms de variables, noms de fonctions, noms de classes, etc.).

print('None'.isidentifier())
# True

# None = 100
# SyntaxError: can't assign to keyword

Pour obtenir une liste de mots-clés et vérifier si une chaîne est un mot-clé, utilisez le module de mots-clés de la bibliothèque standard. Voir l’article suivant.

Mots qui ne doivent pas être utilisés comme identifiants

Les noms des fonctions intégrées peuvent être utilisés comme identificateurs, vous pouvez donc leur attribuer de nouvelles valeurs.

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.

print(len)
# 

print(len('abc'))
# 3

Si vous affectez une nouvelle valeur au nom len, la fonction d’origine est écrasée. Notez qu’aucune erreur ou avertissement n’est imprimé lors de l’affectation.

print(len('abc'))
# 3

len = 100
print(len)
# 100

# print(len('abc'))
# TypeError: 'int' object is not callable

Une autre erreur courante consiste à écrire list = [0, 1, 2] afin que list() ne puisse pas être utilisé.

Pour plus d’informations sur la vérification de la liste des fonctions et constantes intégrées, consultez l’article suivant.

Conventions de nommage (PEP8)

PEP signifie Python Enhancement Proposal.

PEP signifie Python Enhancement Proposal. Un PEP est un document de conception fournissant des informations à la communauté Python ou décrivant une nouvelle fonctionnalité pour Python ou ses processus ou son environnement.
PEP 1 — Objectif et lignes directrices du PEP | Python.org

PEP8 décrit le « Guide de style pour le code Python ».

Les conventions de nommage sont également mentionnées.

Par exemple, les styles suivants sont recommandés. Voir le lien ci-dessus pour plus de détails.

  • Noms des modules
  • Noms des packages
  • Noms de classe et d’exception
    • Mots en majuscule (CamelCase)
  • Noms de fonction et de variable et de méthode
  • Constantes

Si votre organisation n’a pas ses propres conventions de nommage, il est recommandé de suivre PEP8.