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:
selfje tradičné, ale nie povinné meno. Môže sa použiť akékoľvek iné meno, aleselfje š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)selfchý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.