Co je já v Pythonu: Příklady ze skutečného světa

Při psaní kurzů v Pythonu se můžete často setkat s pojmem 'self.'Je to zásadní koncept, kterému musí začátečníci porozumět, protože se hlouběji ponoří do objektově orientovaných funkcí v programovacím jazyce Python.

Parametr selfodkazuje na aktuální instanci třídy. Můžete jej použít pro přístup k atributům a metodám, které patří do této třídy.

V tomto tutoriálu Python prozkoumáme, jak selfproměnná hraje klíčovou roli ve třídách Pythonu. Ukážeme vám také, jak zachovat srozumitelnost kódu, modularitu a opětovnou použitelnost pomocí self.

Obsah

Pochopení sebe sama v Pythonu

Python je jazyk objektově orientovaného programování (OOP) , který silně závisí na třídách a objektech. Než se tedy ponoříme do selfparametru, musíme nejprve pochopit, co je objektově orientované programování.

Objektově orientované programování v Pythonu

Co je já v Pythonu: Příklady ze skutečného světaPsaní křídou – OOP, objektově orientované programování "data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="lazy" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Co je Já v Pythonu." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" size="(max-width: 709px) 100vw, 709px">

Objektově orientované programování pomáhá programátorům modelovat koncepty a vztahy v reálném světě pomocí tříd a objektů. Výsledkem je kód, který je strukturovanější, opakovaně použitelný a škálovatelný.

Představte si třídu jako šablonu pro vytváření objektů s předdefinovanými vlastnostmi a metodami. Objekt je také instancí třídy, která ukládá své vlastní hodnoty atributů a má přístup k funkcím třídy.

Tyto dva koncepty jsou důležitým stavebním kamenem v mnoha aplikacích. V tomto videu o tom, jak snadno vytvářet data pomocí knihovny Python Faker Library, můžete vidět jak třídy, tak objekty při práci.

Role Python Self

Self je odkaz na instanci třídy v Pythonu. Umožňuje přistupovat a upravovat atributy a metody třídy v rámci jejího vlastního rozsahu.

Zde je několik klíčových bodů o použití self v Pythonu:

  • Selfnení vyhrazené klíčové slovo v syntaxi Pythonu . K identifikaci instancí tříd můžete použít jiná jména, ale selfje to nejrozšířenější a nejpřijímanější konvence programátory Pythonu.
  • Selfse používá jako první parametr v metodách instance k odkazování na aktuální instanci třídy.
  • Můžete použít selfk rozlišení mezi atributy instance a lokálními proměnnými, takže váš kód bude čitelnější a méně chybný.
  • Při volání metody instance Python automaticky předá instanci jako první parametr.
  • Parametr musíte deklarovat selfv __init__() konstruktoru a ve všech dalších konstruktorech funkcí ve vaší třídě. Pokud tak neučiníte, váš program vyvolá typeerror.

    Níže můžete vidět příklad této chyby:

class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given

Poznámka: Použití parametru ve funkcích můžete obejít self pomocí funkce statické metody, kterou poskytuje Python 3. Podrobněji se tomu budeme věnovat v pozdější části.

Práce se sebou samým

Co je já v Pythonu: Příklady ze skutečného světa

Naučit se používat self je velmi důležité pro vytváření tříd v Pythonu. V této části se dozvíte, jak používat self v různých scénářích při práci s třídami a objekty.

Inicializace objektů pomocí '__init__()'

Co je já v Pythonu: Příklady ze skutečného světa

Při vytváření nové instance třídy __init__() je volána metoda, která inicializuje atributy objektu. Metoda __init__() je konstruktor třídy a bere self parametr jako svůj první argument.

Parametr selfse v rámci této metody používá k přiřazení atributů instance k daným argumentům.

Zde je příklad:

class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)

V tomto příkladu metoda bere , , a jako parametry během inicializace objektu. Parametr odkazuje na instanci třídy a umožňuje vám nastavit atributy a pro konkrétní vytvářený objekt. init selfnameageself nameage

Používání sebe sama v metodách

Při definování metod instance ve třídě byste měli zahrnout self jako první parametr. To vám umožní přístup k atributům instance a dalším metodám v rámci třídy.

Rozšiřme předchozí příklad:

class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()

V tomto příkladu introduce()metoda zahrnuje selfjako svůj první parametr. To vám umožní získat přístup ke jménu objektu a atributům stáří a vytvořit personalizovaný úvod.

Při volání metody ve vašem kódu nemusíte self parametr předávat explicitně. Python se o to postará automaticky.

Dodržováním těchto pokynů a pochopením účelu selfin , mohou začátečníci efektivně pracovat s třídami a objekty. To jim umožňuje vytvářet dobře strukturovaný kód, který se snadno čte a udržuje.

Běžné případy vlastního použití

Co je já v Pythonu: Příklady ze skutečného světa

Existuje mnoho způsobů, jak můžete klíčové slovo použít v kódu Pythonu. Když porozumíte těmto případům použití, budete je moci efektivně využívat ve svých programech. self self

Podívejme se na některé z nich:

Přístup k atributům třídy

Jedním z primárních použití selfje přístup k atributům instance v rámci třídy. Atributy instance jsou specifické pro objekt vytvořený z třídy a ukládají data objektu.

Použití selfvám umožňuje manipulovat nebo přistupovat k těmto atributům v rámci metod třídy. Podívejme se na příklad:

class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)

V tomto příkladu jsme použili self pro přístup k atributu name objektu Dog v rámci display_name metody.

Volání třídních metod

Dalším běžným případem použití selfje volání jiných metod třídy z metody instance. To vám umožní znovu použít kód, snížit složitost a zlepšit čitelnost.

Je nezbytné jej použít selfpři odkazování na jiné metody, protože zajišťuje volání správné metody pro konkrétní instanci. Zvažte následující příklad:

class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)

Ve výše uvedeném příkladu používáme selfk volání show_speciesmetody zevnitř show_infometody. To nám umožňuje zobrazit druh a barvu ptáka v jediném volání.

Nakonec nezapomeňte použít selfpři přístupu k atributům instance a volání metod třídy. Jakmile pochopíte tyto případy použití, budete schopni psát efektivnější a organizovanější kód Pythonu.

Nejlepší vlastní postupy

Co je já v Pythonu: Příklady ze skutečného světa

Při práci s nimi self,existují určité konvence, které musíte dodržovat, abyste se vyhnuli problémům a chybám ve vašem kódu. Tady jsou některé z nich.

Kde používat sebe

Při definování metod instance vždy použijte selfparametr jako první parametr. To vám umožňuje přistupovat a upravovat atributy instance objektu a volat další metody instance v rámci třídy.

Je důležité používat selfpři práci s instancemi objektů v Pythonu. Jeho použití zajišťuje konzistentní chování a umožňuje správné zapouzdření objektu.

Zvažte například následující třídu:

class MyClass: def __init__(self, my_var): self.my_var = my_var

Zde se parametr self používá v __init__ metodě k inicializaci my_var atributu instance objektu. Tímto způsobem se stane atributem specifickým pro instanci. my_var

Výsledkem je, že k němu lze přistupovat a upravovat jej pomocí vlastního odkazu v jiných metodách třídy.

Konvence pojmenování pro sebe

I když selfse pro instanci v Pythonu používá konvenční název, technicky můžete použít jakýkoli název, který se vám líbí. Důrazně se však doporučuje, abyste se drželi používání self pro jasnost a konzistenci s širší komunitou Pythonu.

Použití jiného názvu může způsobit zmatek pro ty, kdo čtou a pracují s vaším kódem, zvláště pokud jsou zvyklí na standardní konvence pojmenování v knihovnách Pythonu.

Kde nepoužívat sebe

Již víme, že selfparametr poskytuje přístup k instanci objektu. V některých případech však některé funkce ve třídě nemusí vyžadovat přístup k instanci objektu.

V tomto scénáři není parametr self potřeba. Python tedy poskytuje funkci statické metody pro obcházení parametru self:

Zde je příklad:

class Car: @staticmethod def print_car(): print('Vroom Vroom')

Ve výše uvedeném příkladu @staticmethoddekorátor funkce přepíše selfpožadavek na parametr v metodě. Tímto způsobem bude funkce stále běžet, i když do ní nebude předána žádná instance objektu.

Závěr

Co je já v Pythonu: Příklady ze skutečného světa

Stručně řečeno, parametr self v Pythonu odkazuje na instanci třídy a umožňuje vám přístup k jejím atributům a metodám. Jako vývojář Pythonu je důležité porozumět účelu sebe sama a jeho použití ve třídách a objektech.

Důsledným používáním sebe sama ve svém kódu podporujete čitelnost a udržovatelnost, což zvyšuje celkovou kvalitu vaší práce.

Také si pamatujte, že ačkoli můžete tento výraz "self"v Pythonu vidět často, není to vyhrazené klíčové slovo Pythonu. Tím se liší od programovacích jazyků jako Javascript a Java , kde "this" je vyhrazené klíčové slovo.

První parametr v metodě třídy můžete pojmenovat, jak chcete; self je pouze preferovaná konvence.

Je self klíčové slovo v Pythonu? 

Mezi programátory Pythonu se vždy vznáší otázka. Je self vlastně klíčové slovo v Pythonu? 

Na rozdíl od jiných programovacích jazyků, jako je C++, kde je self považováno za klíčové slovo, v Pythonu je to konvence, kterou programátoři obvykle dodržují. Je to v podstatě parametr v definici metody. Místo sebe však můžete použít jakékoli jiné jméno jako jiné nebo já nebo cokoliv jiného pro první parametr metody. Dalším důvodem, proč to většina lidí navrhuje, je to, že zlepšuje čitelnost vašeho kódu. 

Podívejme se na příklad, abychom to pochopili: 

class myClass:   def show(další):   print(“jiné se používá místo sebe”)  

Pokud porovnáte tento kód s kódem pro vlastní konstruktor třídy Python, všimnete si, že zde jsme použili název jiný v místo . Nyní vytvoříme objekt této třídy a uvidíme výstup: 

object = myClass()   object.show()

Můžete vidět, že program funguje, i když místo proměnné self použijeme nějaké jiné jméno. Funguje to úplně stejně jako vlastní proměnná. 


Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.

Najvýkonnejšie volanie funkcie v LuckyTemplates

Najvýkonnejšie volanie funkcie v LuckyTemplates

V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.

Techniky modelovania údajov na organizáciu opatrení DAX

Techniky modelovania údajov na organizáciu opatrení DAX

V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.

Osvedčené postupy toku jazyka Power Query

Osvedčené postupy toku jazyka Power Query

V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.

LuckyTemplates vlastní ikony | Vizualizační technika PBI

LuckyTemplates vlastní ikony | Vizualizační technika PBI

Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.