V objektno usmerjenem programiranju ima reference na trenutno območje, ki se pogosto imenuje self, odločilno vlogo. Naučil se boš, kako lahko učinkovito uporabiš to self-referenco za interakcijo s razredi in objekti v Pythonu.
Najpomembnejša spoznanja
- Self-referenca (self) je konvencija v Pythonu, ki ti omogoča dostop do lastnosti in metod trenutnega objekta.
- self se uporablja kot prvi parameter v instančnih metodah in se nanaša na specifičen objekt, na katerem je bila metoda poklicana.
- Na objekte lahko dostopaš iz razrednih metod, tako da objekt preneseš kot parameter.
Raziskovanje self-reference
Da bi popolnoma razumeli pomen self, si poglejmo preprost primer. Recimo, da imaš razred Oseba.

Ko ustvariš instanco tega razreda, se rezervira pomnilnik in objekt je pripravljen za uporabo. Pri tem se spremenljivka, ki jo uporabimo za instanciranje, nanaša na ustrezni pomnilniški prostor.
Posebno pri tem je: Če želiš dostopati do lastnosti ali metod znotraj razreda, potrebuješ dostop do trenutnega objekta. Ker ob definiranju razreda ne veš, kako se bo objekt kasneje imenoval, je self način za dostop do te reference.
Če torej uporabiš self.name, lahko dostopaš do imena osebe, ki je shranjeno v inicializatorju.
Praktičen primer – Razred Avto
Zdaj si ustvarimo praktičen primer. Ustvarili bomo razred Avto, ki ima znamko in inicializator.

V inicializatorju se parameter znamka uporablja za nastavitev znamke avtomobila. Tukaj pride do izraza self. Uporablja se v metodi za dodelitev prenesene vrednosti instančni spremenljivki.

Zdaj lahko ustvariš metodo get_znamka, ki ti omogoča dostop do znamke avtomobila. Parameter self se samodejno prenese, ko se metoda pokliče.

Ko zdaj ustvariš objekt razreda Avto, recimo tesla, in dostopaš do metode get_znamka, bo self nanašal na specifičen objekt, torej tesla.

To pomeni, da lahko pričakuješ, da bo metoda get_znamka vrnila vrednost, ki je bila prej nastavljena.

Metodo lahko pokličeš tudi neposredno prek razreda, tako da preneseš objekt. To ne počneš pogosto, vendar je koristno za razumevanje delovanja self.

Pomembno je opozoriti, da je standardna metoda klicati metodo prek objekta in ne preko razreda.
Povzetek – Obvladovanje self-reference v Pythonu
Self-referenca je temeljni koncept v objektno usmerjenem programiranju s Pythonom. Omogoča ti enostaven dostop do lastnosti in metod tvojega objekta, tako znotraj kot zunaj funkcij in metod. Ko obvladaš uporabo self v svojih razredih, boš sposoben pisati jasnejše, funkcionalnejše in bolj vzdržljive razrede tako v lastnih projektih kot v okviru skupnih projektov v timu.
Pogosta vprašanja
Kaj je self v Pythonu?self je prvi parameter v instančnih metodah in se nanaša na trenutni objekt.
Zakaj je self pomemben?self omogoča dostop do lastnosti in metod trenutnega objekta.
Ali lahko uporabim self v razredni metodi?Da, vendar je običajno, da se metoda pokliče prek objekta.
Kako se self prenese?self se samodejno prenese kot prvi parameter v instančne metode.
Kaj se zgodi, če pozabim na self v metodi?Če pozabiš na self, ne moreš dostopati do instančnih spremenljivk ali metod.