V objektovo orientovanom programovaní hrá referencia na aktuálny objekt, často označovaná ako self, rozhodujúcu úlohu. Naučíš sa, ako efektívne využiť túto referenciu self na formovanie interakcie s triedami a objektmi v Python.
Najdôležitejšie zistenia
- Referenciu self (self) je konvencia v Pythone, ktorá ti umožňuje pristupovať k vlastnostiam a metódam aktuálneho objektu.
- self sa používa ako prvý parameter v inštančných metódach a odkazuje na konkrétny objekt, na ktorom bola metóda zavolaná.
- Na objekty môžeš pristupovať aj z triednych metód, ak predáš objekt ako parameter.
Preskúmanie referencie self
Aby sme plne pochopili význam self, pozrime sa na jednoduchý príklad. Predpokladajme, že máš triedu Osoba.

Ako náhle vytvoríš inštanciu tejto triedy, bude rezervovaná pamäť a objekt je pripravený na použitie. Tu premenná, ktorú používaš na inštanciu, odkazuje na priradenú oblasť pamäte.
Osobité je, že ak chceš pristupovať k vlastnostiam alebo metódam vo vnútri triedy, potrebuješ prístup k aktuálnemu objektu. Keďže pri definovaní triedy nevieš, ako sa objekt neskôr bude volať, self je spôsob, ako získať tento odkaz.
Ako teda používaš self.name, môžeš pristupovať k názvu osoby, ktorý bol uložený v inicializátore.
Praktický príklad – Trieda Auto
Teraz si vytvoríme praktický príklad. Vytvoríme triedu Auto, ktorá má značku a inicializátor.

V inicializátore sa parameter značka používa na nastavenie značky auta. Tu prichádza do hry self. Používa sa v metóde na priradenie prenesenej hodnoty inštančnej premennej.

Teraz môžeš vytvoriť metódu get_značka, ktorá ti umožní pristupovať k značke auta. Parameter self sa automaticky prenesie, keď sa metóda zavolá.

Ako náhle vytvoríš objekt triedy Auto, povedzme tesla, a pristupuješ k metóde get_značka, self bude odkazovať na konkrétny objekt, teda tesla.

To znamená, že môžeš očakávať, že metóda get_značka vráti hodnotu, ktorá bola predtým nastavená.

Taktiež môžeš zavolať metódu priamo cez triedu tým, že predáš objekt. Toto sa často nerobí, ale je to užitočné na pochopenie fungovania self.

Je dôležité si uvedomiť, že štandardným spôsobom je zavolanie metódy cez objekt, nie cez triedu.
Zhrnutie – Ovládanie referencie self v Pythone
Referencia self je základný koncept v objektovo orientovanom programovaní s Pythonom. Umožňuje ti jednoduchý prístup k vlastnostiam a metódam tvojho objektu, ako vo vnútri, tak aj mimo funkcií a metód. Ak zvládneš používanie self vo svojich triedach, budeš schopný písať jasnejšie, funkčné a údržbovejšie triedy, a to ako vo vlastných projektoch, tak aj v rámci spoločných tímových projektov.
Často kladené otázky
Čo je self v Pythone?self je prvý parameter v inštančných metódach a odkazuje na aktuálny objekt.
Prečo je self dôležité?self umožňuje prístup k vlastnostiam a metódam aktuálneho objektu.
Môžem použiť self v triednej metóde?Áno, avšak je častejšie volať metódu cez objekt.
Akým spôsobom sa self prenáša?self sa automaticky prenáša ako prvý parameter do inštančných metód.
Čo sa stane, ak zabudnem na self v metóde?Ak zabudneš na self, nebudeš môcť pristupovať k inštančným premenným alebo metódam.