Objektorientētās programmēšanas jomā ir daži nostiprināti jēdzieni, kas palīdz pārvaldīt piekļuvi objektu īpašībām. Viens no šiem centrālajiem aspektiem ir Getter un Setter. Tomēr Python šis jēdziens netiek īstenots tādā pašā veidā kā citās objektorientētās valodās. Šajā rokasgrāmatā tu uzzināsi, kā efektīvāk izmantot Getter un Setter Python, lai kontrolētu piekļuvi savu klašu īpašībām.
Galvenie secinājumi
- Getter un Setter ir metodes, kas kontrolē piekļuvi īpašībām.
- Python ir eleganta metode, kā īstenot Getter un Setter, izmantojot @property dekoratoru.
- Personalizētu nosaukumu konvenciju izmantošana palīdz skaidri atšķirt iekšējās un publiskās īpašības.
- Python konvencija par piekļuves modificētājiem atšķiras no citām valodām.
Solim pa solim rokasgrāmata
1. solis: Izveidot klasi ar īpašībām
Sāc ar vienkāršas klases definēšanu. Pieņem, ka tu vēlies izveidot Person klasi, kurai ir nosaukums kā īpašība. Nosaukums tiek saglabāts inicializatorā kā privāta īpašība.

Šeit _name tiek deklarēts kā iekšēja īpašība, kur apakšsvītrai ir priekšzīme, ka tas ir privāts mainīgais.
2. solis: Pievienot Getter
Lai realizētu piekļuvi iekšējai īpašībai name, pievieno Getter metodi. Šī metode atgriež pašreizējo nosaukuma vērtību.

3. solis: Pievienot Setter
Tagad pievienojam Setter metodi, lai varētu mainīt personas nosaukumu. Setter ļauj tev noteikt jaunās vērtības iekšējai īpašībai.

4. solis: @property izmantošana
Python ir vēl elegants veids, kā strādāt ar īpašībām, ja tu izmanto @property dekoratoru. Tas ļauj tev tieši definēt Getter un Setter klasē, nevajadzējot izveidot atsevišķas metodes.

5. solis: Darbs ar nepubliskajām īpašībām
Lai nodrošinātu, ka iekšējā īpašība nav tieši pieejama no ārpuses, tu vari izmantot prefiksu __, lai vēl stiprāk kapsulētu īpašību. Šī pieeja nodrošina, ka piekļuve notiek tikai caur Getter un Setter metodēm.

Šī īstenošana nodrošina, ka uz __name nevar piekļūt no ārpuses.
Kopsavilkums – Getter un Setter Python
Šajā rokasgrāmatā tu esi iemācījies, kā efektīvi īstenot Getter un Setter Python, lai kontrolētu piekļuvi objekta mainīgajiem. Tu iepazinies ar @property izmantošanu, kas padara kodu skaidrāku un idiomātiskāku. Iekapsulējot īpašības ar dubultu apakšsvītru, tu var nodrošināt, ka iekšējās vērtības ir pasargātas no nesankcionētas piekļuves.
Bieži uzdotie jautājumi
Kas ir Getter un Setter Python?Getter un Setter ir metodes, kas kontrolē piekļuvi klases īpašībām un ļauj tās izmantot.
Kā es varu īstenot Getter un Setter Python?Tu vari īstenot Getter un Setter, izmantojot metodes vai @property dekoratoru.
Kas ir @property priekšrocība?@property dekorators ļauj eleganti un intuitīvi piekļūt atribūtiem, nepārveidojot atsevišķas metodes.
Kāpēc īpašības Python nedrīkst tieši pieejamas?Tieša piekļuve var izraisīt negaidītu uzvedību un apdraudēt objektu datu integritāti, tāpēc labāk ir kontrolēt piekļuvi.
Ko nozīmē atzīmēt īpašību kā "privātu"?Privāta īpašība tiek atzīta, piesakot apakšsvītru (_) vai dubultu apakšsvītru (__), lai norādītu, ka tai nevajadzētu būt tieši pieejamai no ārpuses.