self - je to klíčové slovo v programovacím jazyce Python, které se používá k odkazování na aktuální objekt třídy. V jiných programovacích jazycích se může nazývat různými způsoby, například, this v jazyce C++ nebo self v jazyce Java. Klíčové slovo samo o sobě self nemá žádný konkrétní význam ani funkci, ale jeho použití je důležitou součástí syntaxe jazyka Python.
Když vytvoříte objekt třídy, každá metoda této třídy by měla přijmout alespoň jeden argument - self. Tento argument je automaticky předán každé metodě v okamžiku hovoru a odkazuje na vytvořený objekt. Pomocí klíčového slova self můžete se obrátit na atributy a metody tohoto objektu.
Pokud máte například třídu Person, která má atribut name a metodu introduce :
class Person:def __init__(self, name):self.name = namedef introduce(self):print("Привет, меня зовут", self.name)
Objekt této třídy můžete vytvořit a vyvolat jeho metody následovně:
p = Person("Анна")p.introduce()
V tomto případě, při vyvolání metody introduce u objektu p , argument self bude automaticky odkazovat na tento objekt. Uvnitř metody introduce tedy můžeme přistupovat k atributu name objektu pomocí self.name ..
Co je self v Pythonu?
V Pythonu se Klíčové slovo "self" používá v metodách tříd k odkazování na samotný objekt třídy. Je to odkaz na sebe sama, což umožňuje objektu třídy přistupovat ke svým proměnným a metodám.
Když objekt třídy vyvolá metodu, automaticky předá odkaz na sebe jako první argument této metody pomocí klíčového slova "self". To umožňuje metodě přístup k proměnným a metodám objektu, se kterými byla vyvolána.
class MyClass:def __init__(self, name):self.name = namedef say_hello(self):print(f"Привет, меня зовут !")obj = MyClass("Алекс")obj.say_hello()
Привет, меня зовут Алекс!
V uvedeném příkladu máme třídu MyClass, která má proměnnou name a metodu say_hello. V metodě say_hello používáme Klíčové slovo "self" pro přístup k proměnné name objektu třídy.
Když vytvoříme objekt třídy MyClass a zavoláme metodu say_hello(), metoda automaticky obdrží odkaz na objekt jako první argument. V rámci metody se tedy můžeme obrátit na proměnnou name objektu pomocí self.name..
Jednoduchým jazykem:
Selfie si lze představit jako pouhý odkaz na samotný objekt, který je vyhlášen třídou. To umožňuje třídním metodám operovat s parametry objektu a měnit jejich hodnoty.
Pokud máme například třídu " pes "s atributy" jméno " a " věk "a metodou" havkat", pak při volání metody "havkat" s argumentem sebe, můžeme se obrátit na atributy objektu a například zobrazit na obrazovce: "jmenuji se [název], mi [věk] let!"
Srozumitelné vysvětlení:
Představme si, že třída je výkres, podle kterého se objekty vytvářejí. Když vytvoříme objekt založený na třídě, v paměti počítače je vyhrazen prostor pro uložení všech jeho atributů a metod. Takový objekt se nazývá instance třídy.
Když vyvoláme metodu instance třídy, musíme určit, na které instanci ji chceme vyvolat. V tom pomáhá parametr self, který se automaticky přenáší při volání metody.
Máme například třídu "člověk", která má metodu"pozdrav". Vytvoříme instanci třídy " Ivan "a na této instanci vyvoláme metodu" pozdrav". Při volání metody Python do ní automaticky přenese parametr self odkazující na tuto instanci.
Díky parametrům self můžeme přistupovat k atributům a metodám instance třídy uvnitř samotné třídy. Pokud například máme atribut "jméno" a chceme odvodit jeho hodnotu, pak můžeme napsat print(self.název), kde self označuje aktuální instanci třídy.