Innenfor objektorientert programmering finnes det noen etablerte konsepter som hjelper med å administrere tilgangen til egenskapene til objekter. Et av disse sentrale aspektene er Getter og Setter. I Python er imidlertid ikke dette konseptet implementert på samme måte som i andre objektorienterte språk. I denne guiden vil du lære hvordan du kan bruke Getter og Setter i Python mer effektivt for å kontrollere tilgangen til egenskapene i klassene dine.
Viktigste innsikter
- Getter og Setter er metoder som kontrollerer tilgangen til egenskaper.
- I Python er det en elegant måte å implementere Getter og Setter med @property-dekoratøren.
- Bruken av tilpassede navnekonvensjoner hjelper til med å tydelig skille mellom interne og offentlige egenskaper.
- Python-konvensjonen for tilgangsmodifikatorer skiller seg fra andre språk.
Trinn-for-trinn-guide
Trinn 1: Opprette en klasse med egenskaper
Start med å definere en enkel klasse. Anta at du ønsker å opprette en klasse Person som har et navn som attributt. Navnet lagres som en privat egenskap i initialisatoren.

Her deklareres _name som en intern egenskap, med understrek-prefikset som signaliserer at det er en privat variabel.
Trinn 2: Legge til en Getter
For å få tilgang til den interne egenskapen name, legger du til en Getter-metode. Denne metoden returnerer den nåværende verdien av navnet.

Trinn 3: Legge til en Setter
Nå legger vi til en Setter-metode slik at navnet til personen kan endres. Setter lar deg angi nye verdier for den interne egenskapen.

Trinn 4: Bruke @property
I Python er håndtering av egenskaper enda mer elegant når du bruker @property-dekoratøren. Dette lar deg definere Getter og Setter direkte i klassen uten å måtte opprette separate metoder.

Trinn 5: Håndtere ikke-offentlige egenskaper
For å sikre at den interne egenskapen ikke er direkte tilgjengelig fra utsiden, kan du bruke prefikset __ for å kapsle inn egenskapen enda sterkere. Denne tilnærmingen sikrer at tilgangen kun skjer via Getter- og Setter-metodene.

Med denne implementeringen blir det sikret at __name ikke kan nås utenfra.
Sammendrag – Getter og Setter i Python
I denne guiden har du lært hvordan du effektivt kan implementere Getter og Setter i Python for å kontrollere tilgangen til objektvariabler. Her har du blitt kjent med bruken av @property, som gjør koden mer oversiktlig og idiomatisk. Ved å kapsle inn egenskaper med en dobbelt understrek kan du sikre at interne variabler beskyttes mot uautorisert tilgang.
Ofte stilte spørsmål
Hva er Getter og Setter i Python?Getter og Setter er metoder som styrer og muliggjør tilgang til egenskaper i en klasse.
Hvordan implementerer jeg Getter og Setter i Python?Du kan implementere Getter og Setter ved hjelp av metoder eller @property-dekoratøren.
Hva er fordelen med @property?@property-dekoratøren gir en elegant og intuitiv tilgang til attributter, uten å måtte implementere separate metoder.
Hvorfor bør egenskaper i Python ikke være direkte tilgjengelige?Direkte tilgang kan føre til uventet atferd og true integriteten til objektdata, derfor er det bedre å kontrollere tilgangen.
Hva betyr det å merke en egenskap som "privat"?En privat egenskap markeres ved å bruke en enkelt understrek (_) eller dobbelt understrek (__) for å indikere at den ikke bør være direkte tilgjengelig utenfra.