Metode Instance vs. Static vs. Class v Pythonu: pomembne razlike

Metode Instance vs. Static vs. Class v Pythonu: pomembne razlike

Metode Python so lahko pogosto zmedene, ko se lotite objektno usmerjenega programiranja (OOP). Ta priročnik zajema tri glavne vrste metod v Pythonu.





3 vrste metod v Pythonu

V Pythonu obstajajo tri vrste metod: primerne metode , statične metode , in razredne metode .





Poznavanje razlik ni vedno potrebno za kodiranje osnovnih skriptov Python, ko pa napredujete v OOP, se lahko razlike močno spremenijo.





Če ste novi v Pythonu ali želite samo eksperimentirati, ne da bi vam bilo treba karkoli namestiti, jih obiščite spletne interaktivne lupine Python .

Preden začnemo: Razumevanje dekorativnih vzorcev

Preden pogledamo razlike, je pomembno razumeti oblikovalski vzorec, znan kot dekorativni vzorec ali preprosto imenovano a dekoraterka .



Dekoraterji zvenijo zapleteno, vendar se ni treba bati. Dekoraterji so preprosto funkcije. Lahko jih napišete sami ali uporabite tiste, ki so vključene v knjižnice, ali standardno knjižnico Python.

Kot vsaka funkcija tudi dekoraterji opravijo nalogo. Razlika je v tem, da dekoraterji uporabljajo logiko ali spremenijo obnašanje drugih funkcij. So odličen način za ponovno uporabo kode in lahko pomagajo ločiti logiko v posamezne skrbi.





Dekoratorski vzorec je Pythonov najprimernejši način definiranja statičnih ali razrednih metod. Takole izgleda Python:

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

Dekoraterji morajo biti tik pred izjavo funkcije ali razreda. Začnejo z @ znak in za razliko od običajnih metod vam oklepajev ni treba postaviti na konec, razen če posredujete argumente.





Možno je kombinirati več dekoraterjev, napisati svojega in jih uporabiti tudi v razredih, vendar vam za te primere ni treba storiti ničesar od tega.

kaj je samsung one ui home

Metode primerkov v Pythonu

Metode primerkov so najpogostejša vrsta metod v razredih Python. Ti so tako imenovani, ker lahko dostopajo do edinstvenih podatkov svojega primerka. Če imate iz razreda avtomobila ustvarjena dva predmeta, imata lahko vsak različne lastnosti. Lahko imajo različne barve, velikosti motorja, sedeže itd.

Metode primerkov morajo imeti sebe kot parameter, vendar vam tega ni treba vedno posredovati. Self je še en poseben izraz za Python. Znotraj katere koli metode primerka lahko uporabite self za dostop do vseh podatkov ali metod, ki lahko prebivajo v vašem razredu. Do njih ne boste mogli dostopati, ne da bi šli skozi sebe.

Nazadnje, ker so najpogostejše metode primerkov, dekorater ni potreben. Vsaka metoda, ki jo ustvarite, bo samodejno ustvarjena kot metoda primerka, razen če Pythonu ne poveste drugače.

Tukaj je primer:

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 dostop do spremenljivke sebe . Upoštevajte, kdaj primer_funkcije se kliče, ni vam treba predati sebe-Python to naredi namesto vas.

Statične metode v Pythonu

Statične metode so metode, ki so na nek način povezane z razredom, vendar jim ni treba dostopati do podatkov, značilnih za razred. Ni vam treba uporabljati sebe in vam niti ni treba ustvariti primerka, lahko preprosto pokličete svojo metodo:

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 bil uporabljen, da je Pythonu povedal, da je ta metoda statična.

Statične metode so odlične za pomožne funkcije, ki opravijo nalogo ločeno. Ni jim treba (in ne morejo) dostopati do podatkov razreda. Morali bi biti popolnoma samostojni in delovati le s podatki, posredovanimi kot argumenti. Če želite dodati dve številki skupaj ali natisniti dani niz, lahko uporabite statično metodo.

Metode razredov v Pythonu

Razredne metode so tretja in zadnja vrsta metode OOP, ki jo morate poznati. Razredne metode vedo za svoj razred. Ne morejo dostopati do določenih podatkov o primerkih, lahko pa pokličejo druge statične metode.

Metode razreda ne potrebujejo sebe kot argument, vendar potrebujejo parameter, imenovan cls . To pomeni razred in podobno kot sam, Python samodejno posreduje.

Metode razreda so ustvarjene z uporabo @classmethod dekoraterka.

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

Razredne metode so morda bolj zmedene vrste teh treh, vendar imajo svoje uporabe. Razredne metode lahko manipulirajo s samim razredom, kar je koristno, ko delate na večjih, bolj zapletenih projektih.

Kdaj uporabiti vsako vrsto metode

Morda se zdi kot težka in zastrašujoča odločitev izbirati med vrstami metod v Pythonu, vendar se boste kmalu z malo vaje lotili tega.

najboljši distributer linux za razvoj spletnih strani

Tudi če pišete drobne skripte za zabavo, je učenje druge funkcije OOP Python velika veščina, ki vam lahko olajša odpravljanje težav in jih v prihodnosti ponovno uporabite.

V povzetku:

  1. Metode primera: Najpogostejša vrsta metode. Lahko dostopa do podatkov in lastnosti, edinstvenih za vsak primerek.
  2. Statične metode: Dostop do drugega v razredu ni mogoč. Popolnoma samostojna koda.
  3. Metode razreda: Dostop do omejenih metod v razredu. Lahko spremeni podrobnosti, specifične za razred.

Če je bila ta vadnica nekoliko napredna ali pa ni ravno tisto, kar ste iskali, zakaj si ne bi ogledali teh tečajev, da bi prešli od začetnika Pythona do profesionalca? Teh 5 spletnih mest je odlično tudi za začetnike Pythona. Če želite fizično uporabo Pythona v resničnem svetu, a vam je malina Pi dolgčas, kaj pa naš vodnik po nadzor Arduina s Pythonom ?

Deliti Deliti Cvrkutati E-naslov Kako očistiti računalnik z operacijskim sistemom Windows z ukaznim pozivom

Če v računalniku z operacijskim sistemom Windows primanjkuje prostora za shranjevanje, jih očistite s temi hitrimi pripomočki ukaznega poziva.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Programiranje
  • Python
O avtorju Joe Coburn(136 objavljenih člankov)

Joe je diplomiral iz računalništva na Univerzi v Lincolnu v Veliki Britaniji. Je poklicni razvijalec programske opreme in ko ne leti z brezpilotnimi letali ali ne piše glasbe, ga pogosto najdejo pri fotografiranju ali ustvarjanju videoposnetkov.

Več od Joea Coburna

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite