Metode Instance vs. Static vs. Class u Pythonu: važne razlike

Metode Instance vs. Static vs. Class u Pythonu: važne razlike

Python metode često mogu biti zbunjujuće kada uđete u objektno orijentirano programiranje (OOP). Ovaj vodič pokriva tri glavne vrste metoda u Pythonu.





3 vrste metoda u Pythonu

U Pythonu postoje tri vrste metoda: instancijske metode , statičke metode , i razredne metode .





Poznavanje razlika nije uvijek potrebno za kodiranje osnovnih Python skripti, ali jednom kad prijeđete u OOP, razlike mogu napraviti veliku promjenu.





Ako ste tek počeli s Pythonom ili samo želite eksperimentirati, a da ne morate ništa instalirati, svakako ih posjetite internetske interaktivne Python ljuske .

Prije nego počnemo: Razumijevanje uzoraka dekoratora

Prije nego pogledate razlike, važno je razumjeti uzorak dizajna poznat kao ukrasni uzorak , ili jednostavno nazvan a dekorater .



Dekoratori zvuče složeno, ali nema se čega bojati. Dekoratori su jednostavno funkcije. Možete ih sami napisati ili koristiti one uključene u knjižnice ili standardnu ​​knjižnicu Python.

Kao i svaka funkcija, dekorateri izvode zadatak. Razlika je u tome što dekorateri primjenjuju logiku ili mijenjaju ponašanje drugih funkcija. Oni su izvrstan način za ponovnu uporabu koda i mogu pomoći u razdvajanju logike na individualne probleme.





Ukrasni uzorak Pythonov je preferirani način definiranja statičkih ili klasa metoda. Evo kako netko izgleda u Pythonu:

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()

Dekoratori moraju neposredno prethoditi deklaraciji funkcije ili klase. Počinju s @ znak, i za razliku od normalnih metoda, ne morate stavljati zagrade na kraj osim ako ne prosljeđujete argumente.





Moguće je kombinirati više dekoratora, napisati vlastite i primijeniti ih i na klase, ali nećete morati ništa od toga učiniti za ove primjere.

kako deinstalirati Windows 10 Update

Metode instanci u Pythonu

Instance metode su najčešći tip metoda u Python klasama. Nazivaju se tako jer mogu pristupiti jedinstvenim podacima svoje instance. Ako imate dva objekta izrađena od klase automobila, svaki može imati različita svojstva. Mogu imati različite boje, veličine motora, sjedala itd.

Instance metode moraju imati sebe kao parametar, ali ovo ne morate unositi svaki put. Self je još jedan poseban izraz za Python. Unutar bilo koje metode instance možete koristiti self za pristup svim podacima ili metodama koji se mogu nalaziti u vašem razredu. Nećete im moći pristupiti ako ne prođete kroz sebe.

Konačno, budući da su metode primjera najčešće, nema potrebe za dekoratorom. Svaka metoda koju stvorite automatski će se stvoriti kao metoda instance, osim ako Pythonu ne kažete drugačije.

Evo primjera:

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 Ime varijabli se pristupa putem sebe . Primijetite to kada primjer_funkcija zove, ne morate se predati --- Python to radi umjesto vas.

Statičke metode u Pythonu

Statičke metode su metode koje su na neki način povezane s klasom, ali ne trebaju pristupiti podacima specifičnim za klasu. Ne morate koristiti sebe , a ne morate čak ni instancirati instancu, možete jednostavno pozvati svoju metodu:

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 @staticmethod decorator je korišten da se Pythonu kaže da je ova metoda statička metoda.

Statičke metode izvrsne su za pomoćne funkcije koje izvršavaju zadatak izolirano. Ne trebaju (i ne mogu) pristupiti podacima klase. Trebali bi biti potpuno samostalni i raditi samo s podacima proslijeđenim kao argumenti. Možete koristiti statičku metodu za zbrajanje dva broja ili ispis zadanog niza.

Metode klasa u Pythonu

Metode klase su treća i posljednja vrsta OOP metode koju treba znati. Klasne metode znaju za svoju klasu. Ne mogu pristupiti određenim podacima instance, ali mogu pozvati druge statičke metode.

Metode klase ne trebaju sebe kao argument, ali im je potreban parametar tzv cls . Ovo stoji za razred , i poput sebe, Python automatski prosljeđuje.

Metode klase stvaraju se pomoću @classmethod dekorater.

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()

Metode klasa vjerojatno su zbunjujuće vrste ove tri metode, ali imaju svoju primjenu. Metode klase mogu manipulirati samom klasom, što je korisno kada radite na većim, složenijim projektima.

Kada koristiti svaku vrstu metode

Možda se čini kao teška i zastrašujuća odluka o odabiru između vrsta metoda u Pythonu, ali uskoro ćete se snaći s malo vježbe.

kako unijeti bios windows 10 pri pokretanju

Čak i ako za zabavu pišete samo male skripte, učenje druge OOP značajke Pythona velika je vještina za znati i može vam pomoći da lakše riješite kôd i lakše ćete ga koristiti u budućnosti.

U sažetku:

  1. Metode primjera: Najčešći tip metode. Mogućnost pristupa podacima i svojstvima jedinstvenim za svaku instancu.
  2. Statičke metode: Ne mogu pristupiti ničemu drugom u razredu. Potpuno samodostatan kôd.
  3. Metode nastave: Može pristupiti ograničenim metodama u klasi. Može izmijeniti pojedinosti o razredu.

Ako je ovaj vodič bio malo napredniji ili nije baš ono što ste tražili, zašto onda ne biste pogledali ove tečajeve kako biste prešli s početnika na Python na profesionalca? Ovih 5 web stranica također su izvrsne za početnike u Pythonu. Ako želite fizičku upotrebu Pythona u stvarnom svijetu, ali vam je dosadio Raspberry Pi, što kažete na naš vodič za kontrolira Arduino s Pythonom ?

Udio Udio Cvrkut E -pošta Kako očistiti računalo sa sustavom Windows pomoću naredbenog retka

Ako na vašem Windows računalu nedostaje prostora za pohranu, očistite smeće pomoću ovih brzih pomoćnih programa naredbenog retka.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Programiranje
  • Piton
O autoru Joe Coburn(136 objavljenih članaka)

Joe je diplomirao računalne znanosti na Sveučilištu Lincoln, UK. On je profesionalni programer softvera, a kad ne leti bespilotnim letjelicama ili ne piše glazbu, često ga se može zateći kako fotografira ili proizvodi video zapise.

Više od Joea Coburna

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu