Каква е разликата между _ и __ в python?


Отговор 1:

Теоретично това са просто обикновени имена на променливи. По конвенция, единична подчертаваща точка се използва като променлива без грижи. Например, ако функция връща кортеж и се интересувате само от един елемент, Pythonic начин да игнорирате другия е:

_, x = забавление ()

В някои интерпретатори _ и __ имат специални значения и съхраняват стойности на предишни оценки.

За научаване на посещението на Python - https: //hackr.io/tutorials/learn ...


Отговор 2:

единично водещо подчертаване: направи променливи, функции, методи и класове частни

Двойно водещо подчертаване: това въвежда концепция, наречена „mangling“. Това помага на интерпретацията на python да прави разлика между имената на атрибути в случай на наследяване (когато два атрибута имат едно и също име в супер и подклас). това добавя _Classname към __manglingVariable и става __Classname__manglingVariable.

някои хора го използват като „наистина частен”, но трябва да избягваме това. В Python няма концепция за „наистина частни“.

Извършва се променлива променлива от страничен клас. Вижте по-долу примера.

клас FirstClass:

!! def __add (самостоятелно):

!!!! печат (self.num1 + self.num2)

!! def sub (себе):

!!!! печат (self.num1-self.num2)

!! def __init __ (самостоятелно, num1, num2):

!!!! self.num1 = num1

!!!! self.num2 = num2

f = FirstClass (1,2) # инстанция

f._FirstClass__add () # 3

f.sub () # -1