Private Variabilities in Python

aktuaalisesti (käytännössä) Pythonilla ei ole mitään private member-muuttujaa Pythonissa. Kahden alleviivauksen (__) lisääminen alussa tekee kuitenkin muuttujan tai menetelmän yksityiseksi, on useimpien python-koodien käyttämä käytäntö.

ymmärretään tämä käsite esimerkin kautta –

privateVar1.py

Live 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

edellä mainitussa ohjelmassa __privMeth on yksityinen menetelmä ja __privateVar on yksityinen muuttuja. Katsotaan nyt sen tuotos –

Tuotos

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'

yllä olevasta tuotoksesta voidaan nähdä, että luokan ”myClass” ulkopuolella ei voi käyttää yksityistä menetelmää yhtä hyvin kuin yksityistä muuttujaa. Kuitenkin, sisällä luokan (myClass) Voimme käyttää yksityisiä muuttujia. Hello () – menetelmässä voidaan käyttää __privateVar-muuttujaa (kuten yllä: ”Private Variable value: 27”).

yllä olevasta esimerkistä voidaan siis ymmärtää, että kaikki luokan sisällä olevat muuttujat ja menetelmät ovat metodilla julkisia. Kun julistamme data Memberin yksityiseksi, se tarkoittaa, että ne ovat käytettävissä vain luokan puolella ja ne ovat saavuttamattomissa luokan ulkopuolella. Tekniikkaa, jossa muuttujasta tai menetelmästä tehdään yksityinen, kutsutaan datan mankeloinniksi. Lomakkeen __roskapostin tunniste (vähintään kaksi johtavaa alaviivaa, enintään yksi perään liittyvä alaviiva) korvataan tekstillisesti _luokkanimi__roskapostilla, jossa luokkanimi on nykyinen luokkanimi, jonka johtava alaviiva(t) on poistettu. Tämä mankelointi tapahtuu tunnisteen syntaktisesta asemasta piittaamatta, kunhan se tapahtuu luokan määritelmän puitteissa.

kaksinkertaiset alaviivanimet on tarkoitettu, jotta jokin alaluokka ei vahingossa ohittaisi niitä.

raja

julkaistu 19. helmikuuta 2019 16:59:04

mainokset

Related Posts

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *