Sobes.tech
Junior

Čo je self v Pythone?

sobes.tech AI

Odpoveď od AI

self v Pythone je prvý argument metódy inštancie triedy. Reprezentuje samotný inštančný objekt, cez ktorý bola metóda volaná.

Kľúčové vlastnosti self:

  • Odkaz na inštanciu: Umožňuje prístup k atribútom a volanie ďalších metód tejto konkrétnej inštancie.
  • Konvencia pomenovania: self je tradičné, ale nie povinné meno. Môže sa použiť akékoľvek iné meno, ale self je široko akceptovaný štandard, ktorý robí kód čitateľnejším.
  • Je automaticky odovzdaný: Pri volaní metódy inštancie Python automaticky odovzdá odkaz na volajúcu inštanciu ako prvý argument (self). Nie je potrebné ho definovať pri volaní.
  • Chýba v statických a triednych metódach: V statických metódach (@staticmethod) self chýba, pretože nie sú viazané na konkrétnu inštanciu. V triednych metódach (@classmethod) je prvým argumentom odkaz na samotnú triedu (cls), nie na inštanciu.

Príklad použitia:

class MyClass:
    def __init__(self, value):
        # Priraďujeme odovzdanú hodnotu atribútu inštancie 'value'
        self.value = value

    def print_value(self):
        # Používame 'self' na prístup k atribútu 'value' tejto inštancie
        print(f"Value is: {self.value}")

# Vytvoríme inštanciu triedy
obj = MyClass(10)

# Zavoláme metódu inštancie. Python automaticky odovzdá 'obj' ako 'self'
obj.print_value()

V tomto príklade self vo vnútri metód __init__ a print_value odkazuje na objekt obj. Bez self by nebolo možné pristúpiť k atribútu value, ktorý patrí práve tejto inštancii MyClass.