Quelle est la différence entre _ et __ en python?


Réponse 1:

Théoriquement, ce ne sont que des noms de variables ordinaires. Par convention, un seul trait de soulignement est utilisé comme variable indifférente. Par exemple, si une fonction retourne un tuple et que vous n'êtes intéressé que par un élément, une manière Pythonique d'ignorer l'autre est:

_, x = amusant ()

Dans certains interprètes, _ et __ ont des significations spéciales et stockent les valeurs des évaluations précédentes.

Pour apprendre Python, visitez - https: //hackr.io/tutorials/learn ...


Réponse 2:

soulignement simple: rendre les variables, fonctions, méthodes et classes privées

Double trait de soulignement: cela introduit un concept appelé «mutilation». Cela aide l'interprétation python à distinguer les noms d'attribut en cas d'héritage (lorsque deux attributs ont le même nom dans la super et la sous-classe). cela ajoute _Classname à __manglingVariable et devient __Classname__manglingVariable.

certains l'utilisent comme «vraiment privé», mais nous devons éviter cela. Il n'y a pas de concept «vraiment privé» en Python.

Une variable mangling peut être consultée en dehors de la classe. Voir l'exemple ci-dessous.

classe FirstClass:

!! def __add (auto):

!!!! print (self.num1 + self.num2)

!! def sub (auto):

!!!! print (self.num1-self.num2)

!! def __init __ (self, num1, num2):

!!!! self.num1 = num1

!!!! self.num2 = num2

f = FirstClass (1,2) # instanciation

f._FirstClass__add () # 3

f.sub () # -1