Metody instance vs. statické vs. třídy v Pythonu Důležité rozdíly

  • Joseph Goodman
  • 0
  • 3177
  • 650
reklama

Metody Pythonu mohou být často matoucí, jakmile se dostanete do objektově orientovaného programování (OOP). Tato příručka popisuje tři hlavní typy metod v Pythonu.

3 typy metod v Pythonu

V Pythonu existují tři typy metod: metody instance, statické metody, a metody třídy.

Znalost rozdílů není vždy nutná pro kódování základních skriptů Pythonu, ale jakmile postupujete do OOP, mohou rozdíly způsobit velkou změnu.

Pokud jste pro Python nováčkem, nebo chcete experimentovat bez nutnosti instalovat cokoli, pak navštivte tyto interaktivní interaktivní pythonové skořápky Vyzkoušejte Python ve svém prohlížeči pomocí těchto online interaktivních skořápek Vyzkoušejte Python ve svém prohlížeči pomocí těchto online interaktivních modulů Shells Ať už procházíte těmito příklady Pythonu nebo si prohlížíte základní pole a seznamy, můžete si vyzkoušet kód přímo v prohlížeči. Zde jsou nejlepší online tlumočníci Pythonu, které jsme našli. .

Než začneme: Porozumění vzorům dekoratérů

Předtím, než se podíváte na rozdíly, je důležité pochopit návrhový vzor známý jako dekoratér vzor, nebo jednoduše nazvaný a dekoratér.

Dekorátoři znějí komplexně, ale není čeho se bát. Malíři jsou prostě funkce. Můžete je napsat sami nebo použít ty, které jsou součástí knihoven nebo standardní knihovny Python.

Stejně jako všechny funkce i dekorátoři vykonávají úkol. Rozdíl je v tom, že dekorátoři používají logiku nebo mění chování jiných funkcí. Jsou vynikajícím způsobem, jak znovu použít kód, a mohou pomoci oddělit logiku podle individuálních zájmů.

Vzorek dekoratérů je Pythonovým preferovaným způsobem definování statických nebo třídních metod. Jak vypadá v Pythonu:

class DecoratorExample: "" "Příklad Class" "" def __init __ (self): "" "Příklad Setup" "" print ('Hello, World!') @staticmethod def example_function (): "" "Tato metoda je vyzdobena!" "" print ('I \' ma zdobené funkce! ') de = DecoratorExample () de.example_function ()

Dekorátoři musí bezprostředně předcházet deklaraci funkce nebo třídy. Začínají @ podepsat a na rozdíl od běžných metod nemusíte končit závorky, pokud předáváte argumenty.

Je možné kombinovat více dekoratérů, psát vlastní a aplikovat je také na třídy, ale pro tyto příklady nemusíte nic dělat..

Metody instance v Pythonu

Metody instance jsou nejběžnějším typem metod ve třídách Python. Jedná se o tzv. Protože mají přístup k jedinečným datům své instance. Pokud máte dva objekty vytvořené z automobilové třídy, mohou mít každý jiné vlastnosti. Mohou mít různé barvy, velikosti motoru, sedadla atd.

Metody instance musí mít jako parametr, ale nemusíte to pokaždé předávat. Self je další zvláštní termín Pythonu. V jakékoli instanční metodě můžete použít vlastní přístup k jakýmkoli datům nebo metodám, které se mohou nacházet ve vaší třídě. Nebudete mít přístup k nim, aniž byste museli projít sebe sama.

A konečně, protože instance metody jsou nejčastější, není potřeba žádný dekoratér. Jakákoli metoda, kterou vytvoříte, bude automaticky vytvořena jako metoda instance, pokud Pythonu neřeknete jinak.

Zde je příklad:

class DecoratorExample: "" "Příklad Class" "" def __init __ (self): "" "Příklad Setup" "" print ('Hello, World!') self.name = 'Decorator_Example' def example_function (self): "" " Tato metoda je instanční metoda! "" "Print ('I \' m instance instance! ') Print (' Moje jméno je '+ self.name) de = DecoratorExample () de.example_function ()

název proměnná je přístupná přes . Všimněte si, že když example_funkce se nazývá, nemusíte předávat sebe, protože to za vás udělá Python.

Statické metody v Pythonu

Statické metody jsou metody, které nějakým způsobem souvisejí s třídou, ale nepotřebují přístup k datům specifickým pro danou třídu. Nemusíte používat , a nepotřebujete ani instanci instance, můžete jednoduše zavolat svou metodu:

třída DecoratorExample: "" "Příklad třídy" "" def __init __ (self): "" "Příklad nastavení" "" print ('Hello, World!') @staticmethod def example_function (): "" "Tato metoda je statická metoda ! "" "print ('I \' ma static method! ') de = DecoratorExample.example_function ()

@staticmethod dekoratér byl použit, aby řekl Pythonu, že tato metoda je statická.

Statické metody jsou skvělé pro obslužné funkce, které provádějí úkol izolovaně. Nepotřebují (a nemohou) přistupovat k datům třídy. Měly by být zcela nezávislé a pracovat pouze s údaji předávanými jako argumenty. Statickou metodu můžete použít k přidání dvou čísel dohromady nebo k vytištění daného řetězce.

Metody třídy v Pythonu

Metody třídy jsou třetím a posledním typem metody OOP, který je třeba znát. Metody třídy vědí o své třídě. Nemají přístup ke konkrétním datům instance, ale mohou volat i jiné statické metody.

Metody třídy nepotřebují jako argument, ale potřebují parametr nazvaný cls. To znamená třída, a stejně jako já dostane Python automaticky.

Metody třídy jsou vytvářeny pomocí @classmethod dekoratér.

třída DecoratorExample: "" "Příklad třídy" "" def __init __ (self): "" "Příklad nastavení" "" print ('Hello, World!') @classmethod def example_function (cls): "" "Tato metoda je třída metoda! "" "print ('I \' ma metoda třídy! ') cls.some_other_function () @staticmethod def some_other_function (): print (' Hello! ') de = DecoratorExample () de.example_function ()

Metody třídy jsou možná více matoucí typy metod tří, ale mají své použití. Metody třídy mohou manipulovat se samotnou třídou, což je užitečné, pokud pracujete na větších a složitějších projektech.

Kdy použít každý typ metody

Může se to zdát jako tvrdé a skličující rozhodnutí při výběru mezi typy metod v Pythonu, ale brzy to zvládnete s trochou praxe.

I když píšete jen malé skripty pro zábavu, naučení se další funkce OOP Pythonu je skvělá znalost a může vám pomoci usnadnit odstraňování problémů s kódem a v budoucnu je snáze znovu použít..

Celkem:

  1. Metody instance: Nejběžnější typ metody. Možnost přístupu k datům a vlastnostem jedinečným pro každou instanci.
  2. Statické metody: Nelze přistupovat k ničemu jinému ve třídě. Úplně samostatný kód.
  3. Metody třídy: Ve třídě má přístup k omezeným metodám. Může upravit podrobnosti specifické pro danou třídu.

Pokud byl tento tutoriál trochu pokročilý, nebo ne úplně to, co jste hledali, tak proč se podívat na tyto kurzy a jít od Python začátečníka k 5 kursům, které vás zavedou od Python začátečníka k 5 kursům, které uděláte Vezměte vás od Python Beginner k Pro Těchto pět kurzů vás naučí vše o programování v Pythonu, jednom z nejžhavějších jazyků právě teď. ? Těchto 5 webů je také skvělé pro začátečníky Pythonu. Pokud chcete fyzické použití Pythonu v reálném světě, ale nudíte se Raspberry Pi, co náš průvodce ovládáním Arduina s Pythonem Jak programovat a ovládat Arduino s Pythonem Jak programovat a ovládat Arduino s Pythonem Smutně, Nelze přímo programovat Arduino v Pythonu, ale můžete jej ovládat přes USB pomocí programu Python. Zde je návod. ?




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.