Beaucoup de programmeurs Python débutants considèrent le soulignement (_) comme faisant simplement partie des noms de variables. Mais en fait, ce symbole exécute tâches importantes et multifonctionnelles, surtout entre les mains de développeurs expérimentés 🧫🐍
Voyons cela de plus près 7 applications avancées de soulignement en Pythonqui surprendront même ceux qui écrivent du code depuis plus d'un an.

🔁 1. Obtenir la dernière valeur calculée dans REPL
Si vous travaillez dans un shell interactif Python (par exemple, dans le terminal ou Jupyter Notebook), le symbole _ permet d'obtenir résultat de la dernière opération sans le sauvegarder dans une variable.
Exemple :
>>> 5 + 10
15
>>> _ * 2
30Très pratique pour les calculs rapides : pas besoin de saisir un nouveau nom de variable à chaque fois ✨
🖂 2. Variable de remplacement dans la boucle
Lorsque la variable de boucle n'est pas utilisée dans le corps, vous pouvez la remplacer par _. Cela souligne : la variable volontairement ignoré.
Exemple :
for _ in range(3):
print("Hi!")Conclusion :
Привет!
Привет!
Привет!Cette approche est souvent utilisée pour répétition multiple des actions, où l'indice d'itération n'est pas important.
💡 3. Séparation des chiffres pour la lisibilité
Les grands nombres sont difficiles à lire. En Python, vous pouvez séparer visuellement les nombres par des traits de soulignement, sans affecter la valeur.
Exemple :
сумма = 1_000_000 # identique à 1000000
print(сумма)Conclusion :
1000000Utile pour les finances 💸, la science 🧪 ou simplement pour la lisibilité.
🔐 4. Variables internes et name mangling
À l'intérieur des classes, les variables commençant par un double trait de soulignement (__var), sont considérés comme privés. Python change automatiquement leur nom (name mangling) pour rendre difficile l'accès de l'extérieur.
Exemple :
class Example:
def __init__(self):
self.__secret = "hidden"
def reveal(self):
return self.__secret
e = Example()
# print(e.__secret) # Erreur !
print(e.reveal()) # fonctionne ✅📌 Bien que vous puissiez contourner cette restriction (e._Example__secret), le faire non recommandé. C'est un mécanisme interne !
⚠️ 5. Résolution des conflits de mots clés
Si vous devez utiliser un nom de variable qui correspond à un mot-clé Python (par exemple, class), ajoutez un trait de soulignement à la fin.
Exemple :
def describe(class_):
return f"This is class: {class_}"
print(describe("Python"))Maintenant class_ est un nom valide, et vous évitez les conflits avec la syntaxe du langage.
🔏 6. Attributs privés dans les classes
En plus du point 4 : le double soulignement au début de l'attribut le rend "privé". pas une protection, mais un accord pour les autres développeurs : « Ne touchez pas à cela inutilement. »
Exemple :
class Hidden:
def __init__(self):
self.__data = "secret"
h = Hidden()
# print(h.__data) # erreur
print(h._Hidden__data) # cela fonctionnera, mais il ne faut pas le faire✨ 7. Méthodes magiques (dunder)
Les méthodes avec des traits de soulignement doubles (__method__) sont méthodes magiquesqui définissent le comportement des objets lors de l'interaction avec l'opérateur +, ==, print(), etc.
Exemple :
class Magic:
def __init__(self, value):
self.value = value
def __str__(self):
return f"Magic with the number {self.value}"
print(Magic(42))Conclusion :
Magic с числом 42🤹♀️ Aide-mémoire utile sur les méthodes magiques :
Méthode | Ce qu'il fait |
|---|---|
| Initialisation de l'objet |
| Représentation textuelle ( |
| Longueur de l'objet |
| Rend l'objet appelable en tant que fonction |
| Accès par index |
| Affectation par index |
| Opérateur |
| Comparaison |
| Addition |
| Rend l'objet itérable |
🎯 Ces méthodes vous permettent de créer classes propres se comportant comme des types intégrés - beau, concis et puissant.
✅ Résultats
Le soulignement en Python est pas seulement la syntaxe, et outil multifonctionnel:
aide à écrire plus proprement et plus clairement
rend le code expressif
cache le superflu de l'utilisateur
élargit les possibilités des classes
Essayez d'utiliser ces techniques dans votre code et vous verrez à quel point Python devient encore plus puissant 💪🐍
