Kuo skirtumas tarp _ ir __ python'e?


Atsakymas 1:

Teoriškai tai yra tik paprasti kintamieji vardai. Pagal susitarimą, vienas apatinis brūkšnys naudojamas kaip nerūpestingas kintamasis. Pvz., Jei funkcija grąžina klaidą, o jus domina tik vienas elementas, Pythonic būdas ignoruoti kitą yra:

_, x = linksma ()

Kai kurie vertėjai _ ir __ turi specialias reikšmes ir saugo ankstesnių vertinimų reikšmes.

Norėdami sužinoti apie „Python“ vizitą - https: //hackr.io/tutorials/learn ...


Atsakymas 2:

vienas pagrindinis brūkšnys: kintamuosius, funkcijas, metodus ir klases padarykite privačius

Dvigubas pagrindinis brūkšnys: tai įveda sąvoką, vadinamą „manglingu“. Tai padeda aiškinti python interpretaciją atributų pavadinimų paveldėjimo atveju (kai du atributai turi tą patį pavadinimą super ir subklasėje). tai prideda _Classname prie __manglingVariable ir tampa __Classname__manglingVariable.

kai kurie žmonės tai naudoja kaip „tikrai privatų“, tačiau turėtume to vengti. Python'e nėra „tikrai privataus“ koncepto.

Tvarkingas kintamasis gali būti pasiektas pašalinėje klasėje. Žr. Žemiau pateiktą pavyzdį.

klasės „FirstClass“:

!! def __add (savarankiškai):

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

!! def sub (savęs):

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

!! def __init __ (savęs, num1, num2):

!!!! self.num1 = num1

!!!! self.num2 = num2

f = „FirstClass“ (1,2) # momentinis vaizdas

f._FirstClass__add () # 3

f.sub () # -1