Metódy inštancie vs. statické vs. triedy v Pythone: dôležité rozdiely

Metódy inštancie vs. statické vs. triedy v Pythone: dôležité rozdiely

Metódy Python môžu byť často mätúce, keď sa dostanete do objektovo orientovaného programovania (OOP). Táto príručka pokrýva tri hlavné typy metód v Pythone.





Tri typy metód v Pythone

V Pythone existujú tri typy metód: inštančné metódy , statické metódy a triedne metódy .





Poznanie rozdielov nie je vždy potrebné na kódovanie základných skriptov Pythonu, ale keď postúpite do OOP, rozdiely môžu znamenať veľkú zmenu.





Ak ste v Pythone nováčik alebo len chcete experimentovať bez toho, aby ste museli čokoľvek inštalovať, navštívte tieto stránky online interaktívne mušle Pythonu .

Skôr než začneme: Pochopenie vzorov dekoratéra

Predtým, ako sa pozriete na rozdiely, je dôležité porozumieť dizajnovému vzoru známemu ako vzor dekorátora alebo jednoducho nazvaný a dekoratér .



Dekoratéry pôsobia zložito, ale nie je sa čoho báť. Dekoratéry sú jednoducho funkcie. Môžete ich napísať sami, alebo môžete použiť knižnice alebo štandardnú knižnicu Pythonu.

Rovnako ako každá funkcia, dekoratéri vykonávajú úlohu. Rozdiel je v tom, že dekoratéri používajú logiku alebo menia správanie iných funkcií. Predstavujú vynikajúci spôsob opätovného použitia kódu a môžu pomôcť rozdeliť logiku na individuálne starosti.





Vzor dekorátora je preferovaným spôsobom, akým Python definuje statické alebo triedne metódy. Takto to vyzerá v Pythone:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is decorated! '''
print('I'm a decorated function!')

de = DecoratorExample()
de.example_function()

Dekoratéri musia bezprostredne predchádzať deklarácii funkcie alebo triedy. Začínajú s @ znamienko a na rozdiel od bežných metód nemusíte na konci uvádzať zátvorky, pokiaľ nepredávate argumenty.





Je možné skombinovať viacero dekoratérov, napísať vlastných a použiť ich aj na hodiny, ale pre tieto príklady nebudete musieť nič z toho robiť.

ako vyrobiť krížový kábel

Metódy inštancie v Pythone

Inštančné metódy sú najbežnejším typom metód v triedach Pythonu. Hovorí sa im preto, že majú prístup k jedinečným údajom svojej inštancie. Ak máte dva objekty, každý vytvorený z triedy automobilov, každý z nich môže mať odlišné vlastnosti. Môžu mať rôzne farby, veľkosti motora, sedadlá atď.

Metódy inštancie musia mať seba ako parameter, ale nemusíte to zadávať zakaždým. Self je ďalší špeciálny výraz v jazyku Python. V rámci akejkoľvek metódy inštancie môžete použiť vlastný prístup k akýmkoľvek údajom alebo metódam, ktoré sa môžu nachádzať vo vašej triede. Bez seba nebudete mať prístup.

Nakoniec, pretože inštančné metódy sú najbežnejšie, nie je potrebný žiadny dekorátor. Akákoľvek metóda, ktorú vytvoríte, sa automaticky vytvorí ako inštančná metóda, pokiaľ Pythonu neurčíte inak.

Tu je príklad:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
self.name = 'Decorator_Example'
def example_function(self):
''' This method is an instance method! '''
print('I'm an instance method!')
print('My name is ' + self.name)

de = DecoratorExample()
de.example_function()

The názov k premennej je prístupné prostredníctvom seba . Všimnite si, že kedy example_function sa nazýva, nemusíte sa odovzdávať--Python to robí za vás.

Statické metódy v Pythone

Statické metódy sú metódy, ktoré nejakým spôsobom súvisia s triedou, ale nepotrebujú prístup k údajom špecifickým pre triedu. Nemusíte používať seba , a nepotrebujete ani inštanciu inštancie, môžete jednoducho zavolať svoju metódu:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is a static method! '''
print('I'm a static method!')

de = DecoratorExample.example_function()

The @statická metóda dekorátor bol použitý na to, aby povedal Pythonu, že táto metóda je statická.

Statické metódy sú skvelé pre pomocné funkcie, ktoré vykonávajú úlohu izolovane. Nepotrebujú (a nemôžu) pristupovať k údajom o triede. Mali by byť úplne samostatné a pracovať iba s údajmi poskytnutými ako argumenty. Môžete použiť statickú metódu na sčítanie dvoch čísel alebo vytlačiť daný reťazec.

Metódy triedy v Pythone

Metódy triedy sú tretím a posledným typom metódy OOP, ktorý poznáte. Metódy triedy vedia o svojej triede. Nemôžu získať prístup k údajom konkrétnej inštancie, ale môžu volať iné statické metódy.

Triedne metódy nie sú potrebné seba ako argument, ale potrebujú parameter nazvaný cls . Toto znamená trieda , a podobne ako ja, ho Python automaticky odovzdá.

Metódy triedy sú vytvárané pomocou @classmethod dekoratér.

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@classmethod
def example_function(cls):
''' This method is a class method! '''
print('I'm a class method!')
cls.some_other_function()
@staticmethod
def some_other_function():
print('Hello!')

de = DecoratorExample()
de.example_function()

Metódy triedy sú možno viac mätúcimi typmi metód z týchto troch, ale majú svoje využitie. Metódy triedy môžu manipulovať so samotnou triedou, čo je užitočné, keď pracujete na väčších a komplexnejších projektoch.

Kedy použiť každý typ metódy

Môže sa to zdať ako ťažké a skľučujúce rozhodovanie pri výbere medzi typmi metód v Pythone, ale čoskoro si s trochou praxe prídete na svoje.

prečo nemôžem niekoho označiť na instagrame

Aj keď píšete iba malé skripty pre zábavu, osvojenie si ďalšej funkcie OOP v jazyku Python je vynikajúca znalosť a môže vám pomôcť uľahčiť riešenie problémov s kódom a v budúcnosti ho znova použiť.

V súhrne:

  1. Metódy inštancie: Najbežnejší typ metódy. Má prístup k údajom a vlastnostiam jedinečným pre každú inštanciu.
  2. Statické metódy: K ničomu inému v triede nemáte prístup. Úplne samostatný kód.
  3. Metódy triedy: Má prístup k obmedzeným metódam v triede. Môžete upraviť podrobnosti špecifické pre triedu.

Ak bol tento tutoriál trochu pokročilý alebo nie celkom to, čo ste hľadali, prečo sa potom nepodívať na tieto kurzy a prejsť od Pythonu od začiatočníkov po profesionálov? Týchto 5 webových stránok je skvelých aj pre začiatočníkov v jazyku Python. Ak chcete používať Python v reálnom svete, ale nudí vás Raspberry Pi, čo tak náš sprievodca ovládanie Arduina pomocou Pythonu ?

zdieľam zdieľam Tweet E -mail Ako vyčistiť počítač so systémom Windows pomocou príkazového riadka

Ak má váš počítač so systémom Windows nedostatok úložného priestoru, odstráňte nepotrebné informácie pomocou týchto rýchlych nástrojov príkazového riadka.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Programovanie
  • Python
O autorovi Joe Coburn(136 publikovaných článkov)

Joe je absolventom počítačových vied na University of Lincoln, UK. Je profesionálnym softvérovým vývojárom a keď nelieta s dronmi alebo nepíše hudbu, často ho zastihne fotografovanie alebo vytváranie videí.

Viac od Joe Coburn

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber