Mis vahe on pythonil _ ja __?


Vastus 1:

Teoreetiliselt on need lihtsalt tavalised muutuja nimed. Tavaliselt kasutatakse mittehoolitava muutujana ühte alajoont. Näiteks kui funktsioon tagastab tüübi ja teid huvitab ainult üks element, on Pythonicus viis teist ignoreerida:

_, x = lõbus ()

Mõnes tõlgis on _ ja __ eriline tähendus ja need salvestavad eelmiste hinnangute väärtused.

Pythoni külastuse õppimiseks - https: //hackr.io/tutorials/learn ...


Vastus 2:

ühtne juhtiv alajoon: muutujate, funktsioonide, meetodite ja klasside privaatseks muutmine

Topelt juhtiv alajoon: see tutvustab mõistet “mangling”. See aitab pythoni tõlgendusel eristada atribuudi nimesid pärimise korral (kui kahel atribuudil on super- ja alamklassis sama nimi). see liidab _Classname väärtusega __manglingVariable ja muutub __Classname__manglingVariable.

mõned inimesed kasutavad seda kui "tõeliselt privaatset", kuid me peaksime seda vältima. Pythonis pole ühtegi tõeliselt privaatset kontseptsiooni.

Manglingi muutujale pääseb juurde kõrvalklassist. Vt allpool näide.

klass FirstClass:

!! def __add (ise):

!!!! prindi (ise.num1 + ise.num2)

!! def sub (ise):

!!!! prindi (ise.num1-ise.num2)

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

!!!! ise.num1 = num1

!!!! ise.num2 = num2

f = FirstClass (1,2) # kiirendus

f._FirstClass__add () # 3

f.sub () # -1