Jaký je rozdíl mezi _ a __ v pythonu?


Odpověď 1:

Teoreticky to jsou jen obyčejné názvy proměnných. Obvykle se jako proměnná nezajišťuje jediné podtržítko. Pokud například funkce vrátí n-tici a máte zájem pouze o jeden prvek, pythonický způsob ignorování druhého je:

_, x = zábava ()

U některých tlumočníků mají _ a __ zvláštní význam a ukládají hodnoty předchozích hodnocení.

Pro učení Pythonu navštivte - https: //hackr.io/tutorials/learn ...


Odpověď 2:

jediné hlavní podtržítko: učiní proměnné, funkce, metody a třídy soukromými

Dvojité úvodní podtržítko: zavádí koncept zvaný „mangling“. To pomáhá interpretaci pythonu k rozlišení mezi jmény atributů v případě dědičnosti (když dva atributy mají stejné jméno v super a podtřídě). toto připojí _Classname k __manglingVariable a stane se __Classname__manglingVariable.

někteří lidé to používají jako „skutečně soukromí“, ale měli bychom se tomu vyhnout. V Pythonu neexistuje žádný „skutečně soukromý“ koncept.

Proměnlivá proměnná je přístupná mimo vedlejší třídu. Viz příklad níže.

třída FirstClass:

!! def __add (self):

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

!! def sub (self):

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

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

!!!! self.num1 = num1

!!!! self.num2 = num2

f = FirstClass (1,2) # instance

f._FirstClass__add () # 3

f.sub () # -1