Hver er munurinn á _ og __ í Python?


svara 1:

Fræðilega séð eru þetta bara venjuleg breytanöfn. Hefðbundið er að eitt undirstrik er notað sem breytir án áhuga. Til dæmis, ef aðgerð skilar tippi og þú hefur aðeins áhuga á einum þætti, getur þú pythonically hunsað hinn þáttinn:

_, x = skemmtilegt ()

Í sumum listamönnum hafa _ og __ sérstaka merkingu og geyma gildi frá fyrri mati.

Fyrir upplýsingar um að læra Python, sjá https://hackr.io/tutorials/learn ...


svara 2:

Einföld leiðandi undirstrik: Merkja breytur, aðgerðir, aðferðir og flokka sem einkaaðila

Tvöfalt leiðandi undirstrik: Þetta kynnir hugtak sem kallast „mangling“. Á þennan hátt getur Python-túlkunin greint á milli eigindanafna þegar arfleifð (ef tveir eiginleikar í ofurflokknum og undirflokknum hafa sama nafn). Þetta bætir _Classname við __manglingVariable og til __Classname__manglingVariable.

Sumt fólk notar það sem „mjög einkamál“ en við ættum að forðast þetta. Það er ekkert „mjög einkamál“ hugtak í Python.

Hægt er að nálgast Mangling-breytu utan bekkjarins. Sjá eftirfarandi dæmi.

FirstClass flokkur:

!! def __add (sjálf):

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

!! def sub (sjálfstætt):

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

!! def __init __ (sjálf, num1, num2):

!!!! sjálf.num1 = num1

!!!! sjálf.num2 = num2

f = FirstClass (1,2) # tafarlaus

f._FirstClass__add () # 3

f () # -1