V aktuální termíny (prakticky), python nemá nic volal soukromé členské proměnné v Pythonu. Nicméně, přidání dvou podtržení(__) na začátku je proměnná nebo metoda je soukromé úmluvy používá většina python kód.
Pojďme pochopit tento koncept pomocí příkladu −
privateVar1.py
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
Ve výše uvedeném programu, __privMeth je privátní metoda a __privateVar je privátní proměnná. Pojďme se podívat, jeho výstupní teď −
Výstup
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'
Z výše uvedeného výstupu, můžeme vidět, že mimo třídy „myClass“, nelze získat přístup k soukromé metody, stejně jako privátní proměnné. Uvnitř třídy (myClass) však můžeme přistupovat k soukromým proměnným. V metodě hello () lze přistupovat k proměnné _ _ privateVar (jak je uvedeno výše: „hodnota soukromé proměnné: 27“).
takže z výše uvedeného příkladu můžeme pochopit, že všechny proměnné a metody uvnitř třídy jsou metodou veřejné. Když deklarujeme datový člen jako soukromý, znamená to, že jsou přístupné pouze vedle třídy a jsou mimo třídu nepřístupné. Technika vytváření proměnné nebo metody soukromé se nazývá mandlování dat. Jakýkoliv identifikátor formuláře __spamu (alespoň dvě přední podtržítka, na jedné koncové podtržítko) je textově nahrazen _classname__spamu, kde classname je aktuální název třídy s vedoucí podtržítko(s) svlékl. Toto mandlování se provádí bez ohledu na syntaktickou pozici identifikátoru, pokud se vyskytuje v definici třídy.
Názvy podtržítek mají zabránit náhodnému přepsání podtřídy.