Hvad er forskellen mellem _ og __ i python?


Svar 1:

Teoretisk set er dette kun almindelige variabelnavne. Som konvention bruges en enkelt understregning som en ikke-pleje-variabel. Hvis en funktion f.eks. Returnerer en tuple, og du kun er interesseret i et element, er en Pythonic måde at ignorere det andet:

_, x = sjovt ()

I nogle tolke har _ og __ specielle betydninger og gemmer værdier fra tidligere evalueringer.

For at lære Python-besøg - https: //hackr.io/tutorials/learn ...


Svar 2:

enkelt førende understregning: gør variabler, funktioner, metoder og klasser private

Dobbelt førende understregning: dette introducerer et koncept kaldet “mangling”. Dette hjælper python-fortolkning med at skelne mellem attributnavne i tilfælde af arv (når to attributter har samme navn i super- og underklasse). dette føjes _Classname til __manglingVariable og bliver __Classname__manglingVariable.

nogle mennesker bruger det som "virkelig privat", men vi bør undgå dette. Der er ikke noget "virkelig privat" koncept i Python.

En mangling-variabel kan fås i sideklassen. Se nedenfor eksempel.

klasse FirstClass:

!! def __ tilføjet (selv):

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

!! def sub (self):

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

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

!!!! self.num1 = num1

!!!! self.num2 = num2

f = FirstClass (1,2) # instantiation

f._FirstClass__add () # 3

f.sub () # -1