a tényleges kifejezések (gyakorlatilag), python nincs semmi úgynevezett privát tag változó Python. Azonban, hozzátéve, két hangsúlyozza (_ _ ) az elején teszi a változó vagy a módszer Privát az Egyezmény által használt legtöbb python kódot.
értsük meg ezt a koncepciót egy példán keresztül –
privateVar1.py
élő Demo
class myClass: __privateVar = 27; def __privMeth(self): print("I'm inside class myClass") def hello(self): print("Private Variable value: ",myClass.__privateVar)foo = myClass()foo.hello()foo.__privateMeth
a fenti programban a __privMeth egy privát módszer, a __privateVar pedig egy privát változó. Lássuk a kimenetét most –
kimenet
Private Variable value: 27Traceback (most recent call last): File "C:/Python/Python361/privateVar1.py", line 12, in <module> foo.__privateMethAttributeError: 'myClass' object has no attribute '__privateMeth'
a fenti kimenetből láthatjuk, hogy a” myClass ” osztályon kívül nem érheti el a privát módszert, valamint a privát változót. Az osztályon belül (myClass) azonban hozzáférhetünk a privát változókhoz. A hello () metódusban a _ _ privateVar változó elérhető (a fentiek szerint: “privát változó értéke: 27”).
tehát a fenti példából megérthetjük, hogy az osztályon belüli összes változó és módszer a módszer szerint nyilvános. Amikor az adattagot privátnak nyilvánítjuk, az azt jelenti, hogy csak az osztály oldalán érhetők el, az osztályon kívül pedig elérhetetlenek. A változó vagy módszer magántulajdonban történő előállításának technikáját data mangling-nak nevezik. A __spam űrlap bármely azonosítója (legalább két vezető aláhúzás, legfeljebb egy záró aláhúzás) szövegesen helyébe a _ classname _ _ spam lép,ahol az osztálynév az aktuális osztálynév, egy vezető aláhúzással. Ez a szétroncsolás az azonosító szintaktikai helyzetére való tekintet nélkül történik, mindaddig, amíg az egy osztály meghatározásán belül történik.
Dupla aláhúzás nevek célja, hogy elkerüljék a véletlen felülbíráló egy alosztály helyett.