Objektoriented programavimo srityje yra keletas įdiegtų koncepcijų, padedančių valdyti prieigą prie objektų savybių. Vienas iš šių centrinių aspektų yra Getter ir Setter. Tačiau Python ši koncepcija įgyvendinama ne tuo pačiu būdu kaip kitose objektinio programavimo kalbose. Šiame vadove sužinosite, kaip geriau naudoti Getter ir Setter Python, kad valdytumėte prieigą prie savo klasių savybių.
Pagrindinės įžvalgos
- Getter ir Setter yra metodai, kurie valdo prieigą prie savybių.
- Python yra elegantiškas būdas įgyvendinti Getter ir Setter su @property dekoratoriumi.
- Naudojant vartotojo apibrėžtas pavadinimo konvencijas, lengviau atskirti vidines ir viešas savybes.
- Python konvencija dėl prieigos modifikatorių skiriasi nuo kitų kalbų.
Žingsnis po žingsnio vadovas
Žingsnis 1: Sukurkite klasę su savybėmis
Pirmiausia apibrėžkite paprastą klasę. Tarkime, kad norite sukurti asmens klasę, kuri turi vardą kaip atributą. Šiuo atveju vardas saugomas inicializatoriuje kaip privati savybė.

Čia _name paskelbiama kaip vidinė savybė, o pabraukimo prefiksas signalizuoja, kad tai yra privati kintamoji.
Žingsnis 2: Pridėti Getter
Norėdami realizuoti prieigą prie vidinės savybės name, pridėkite Getter metodą. Šis metodas grąžina dabartinę vardo reikšmę.

Žingsnis 3: Pridėti Setter
Dabar pridursime Setter metodą, kad galėtume pakeisti asmens vardą. Setter leidžia jums nustatyti naujas reikšmes vidinei savybei.

Žingsnis 4: Naudojimosi @property
Python savybių tvarkymas dar elegantiškesnis, kai naudojate @property dekoratorių. Tai leidžia jums tiesiogiai apibrėžti Getter ir Setter klasėje, nereikalaujant kurti atskirų metodų.

Žingsnis 5: Darbas su ne viešomis savybėmis
Lai užtikrintumėte, kad vidinė savybė nebūtų tiesiogiai prieinama iš išorės, galite naudoti prefiksą __, kad dar labiau apsaugotumėte savybę. Šis požiūris užtikrina, kad prieiga vyktų tik per Getter ir Setter metodus.

Šiuo įgyvendinimu užtikrinama, kad prie __name negalėtų būti prieinama iš išorės.
Santrauka – Getter ir Setter Python
Šiame vadove sužinojote, kaip efektyviai įgyvendinti Getter ir Setter Python, kad valdytumėte prieigą prie objekto kintamųjų. Be to, sužinojote apie @property naudojimą, kuris daro kodą aiškesnį ir idiomatinį. Apsaugodami savybes dviem pabraukimais, galite užtikrinti, kad vidiniai kintamieji būtų apsaugoti nuo neleistinos prieigos.
Dažnai užduodami klausimai
Kas yra Getter ir Setter Python?Getter ir Setter yra metodai, kurie valdo prieigą prie klasės savybių.
Kaip įgyvendinti Getter ir Setter Python?Jūs galite įgyvendinti Getter ir Setter naudodami metodus arba @property dekoratorių.
Koks yra @property pranašumas?@property dekoratorius leidžia elegantiškai ir intuityviai prieiti prie atributų, nereikalaujant kurti atskirų metodų.
Kodėl savybės Python neturėtų būti tiesiogiai pasiekiamos?Tiesioginė prieiga gali sukelti netikėtą elgesį ir pakenkti objekto duomenų vientisumui, todėl geriau kontroliuoti prieigą.
Ką reiškia žymėti savybę kaip "privatų"?Privati savybė žymima pridedant pabraukimą (_) arba du pabraukimus (__) priešais, kad būtų parodyta, jog ji neturėtų būti tiesiogiai pasiekiama iš išorės.