Ve světě objektově orientovaného programování hraje referenční odkaz na aktuální objekt, často nazývaný self, rozhodující roli. Naučíš se, jak efektivně využít tuto self-referenci k usnadnění interakce s třídami a objekty v Pythonu.
Hlavní poznatky
- Self-referenci (self) je konvence v Pythonu, která ti umožňuje přístup k vlastnostem a metodám aktuálního objektu.
- self je používán jako první parametr v instančních metodách a odkazuje na konkrétní objekt, na kterém byla metoda volána.
- Můžeš přistupovat k objektům z třídních metod tím, že objekt předáš jako parametr.
Prozkoumání self-reference
Abychom plně pochopili význam self, pojďme se podívat na jednoduchý příklad. Představ si, že máš třídu Osoba.

Když vytvoříš instanci této třídy, bude rezervována paměť a objekt je připraven k použití. Proměnná, kterou používáš k instanciaci, odkazuje na odpovídající oblast paměti.
To zvláštní je: Když se uvnitř třídy chceš dostat k vlastnostem nebo metodám, potřebuješ přístup k aktuálnímu objektu. Protože při definování třídy nevíš, jak se objekt později bude jmenovat, je self způsob, jak se k tomuto odkazu dostat.
Když tedy použiješ self.name, můžeš přistupovat k jménu osoby, které bylo uloženo v inicializátoru.
Praktický příklad – Třída Auto
Teď si vytvoříme praktický příklad. Vytvoříme třídu Auto, která má značku a inicializátor.

V inicializátoru se používá parametr značka k nastavení značky auta. Zde přichází do hry self. Používá se v metodě k přiřazení předané hodnoty instanční proměnné.

Teď můžeš vytvořit metodu get_značka, která ti umožní přístup ke značce auta. Parametr self je automaticky předáván, když je metoda volána.

Když teď vytvoříš objekt třídy Auto, dejme tomu tesla, a přistoupíš k metodě get_značka, self bude odkazovat na konkrétní objekt, tedy tesla.

To znamená, že můžeš očekávat, že metoda get_značka vrátí hodnotu, která byla dříve nastavena.

Můžeš také volat metodu přímo přes třídu předáním objektu. To se nedělá často, ale je to užitečné pro pochopení toho, jak self funguje.

Je důležité si uvědomit, že standardní metodou je volání metody přes objekt, nikoli přes třídu.
Shrnutí – Ovládnutí self-reference v Pythonu
Self-reference je základní koncept v objektově orientovaném programování s Pythonem. Umožňuje ti snadný přístup k vlastnostem a metodám tvého objektu, jak uvnitř, tak mimo funkce a metody. Pokud ovládneš používání self ve svých třídách, budeš schopen psát jasnější, funkčnější a údržbatelnější třídy, a to jak v osobních projektech, tak v rámci společných týmových projektů.
Často kladené otázky
Co je self v Pythonu?self je první parametr v instančních metodách a odkazuje na aktuální objekt.
Proč je self důležité?self umožňuje přístup k vlastnostem a metodám aktuálního objektu.
Mohu použít self v třídní metodě?Ano, ale obvykle je běžnější volat metodu přes objekt.
Jak se self předává?self je automaticky předáván jako první parametr instančním metodám.
Co se stane, když na self zapomenu v metodě?Pokud na self zapomeneš, nebudeš mít přístup k instančním proměnným nebo metodám.