Eksemplar vs staatiline vs klassimeetod Pythonis: olulised erinevused

Eksemplar vs staatiline vs klassimeetod Pythonis: olulised erinevused

Pythoni meetodid võivad sageli objektiivsele programmeerimisele (OOP) sattudes segadusse ajada. See juhend hõlmab kolme peamist Pythoni meetoditüüpi.





3 meetoditüüpi Pythonis

Pythonis on kolme tüüpi meetodeid: eksemplari meetodid , staatilised meetodid ja klassi meetodid .





Erinevuste tundmine ei ole alati vajalik Pythoni põhiskriptide kodeerimiseks, kuid kui olete OOP -i sisenenud, võivad erinevused teha suuri muudatusi.





Kui olete Pythonis uus või soovite lihtsalt katsetada ilma midagi installimata, külastage neid kindlasti interaktiivsed võrgus olevad Pythoni kestad .

Enne kui alustame: dekoraatorimustrite mõistmine

Enne erinevuste vaatamist on oluline mõista kujundusmustrit, mida tuntakse kui dekoraatori muster või lihtsalt a dekoraator .



Dekoraatorid kõlavad keeruliselt, kuid karta pole midagi. Dekoraatorid on lihtsalt funktsioonid. Saate need ise kirjutada või kasutada raamatukogudes või Pythoni standardraamatukogus sisalduvaid.

Nagu iga funktsioon, täidavad dekoraatorid ülesannet. Erinevus seisneb selles, et dekoraatorid rakendavad loogikat või muudavad teiste funktsioonide käitumist. Need on suurepärane võimalus koodi taaskasutamiseks ja aitavad loogikat üksikuteks probleemideks eraldada.





Dekoraatorimuster on Pythoni eelistatud viis staatiliste või klassimeetodite määratlemiseks. Pythonis näeb see välja selline:

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

Dekoraatorid peavad vahetult eelnema funktsiooni või klassi deklaratsioonile. Nad algavad @ märk ja erinevalt tavalistest meetoditest ei pea sulgude lõppu panema, kui te ei esita argumente.





Võimalik on kombineerida mitu dekoraatorit, kirjutada oma ja rakendada neid ka klassides, kuid nende näidete puhul ei pea te seda tegema.

mis on minu telefoni volti

Eksemplari meetodid Pythonis

Eksemplarid on Pythoni klassides kõige levinumad meetodid. Neid nimetatakse nii sellepärast, et neil on juurdepääs oma eksemplari ainulaadsetele andmetele. Kui teil on autoklassist loodud kaks objekti, võivad neil kõigil olla erinevad omadused. Neil võib olla erinevaid värve, mootori suurusi, istmeid jne.

Eksemplari meetoditel peab olema mina parameetrina, kuid te ei pea seda iga kord sisestama. Ise on veel üks Pythoni eriline termin. Mis tahes eksemplari meetodi sees saate kasutada iseennast, et pääseda juurde kõigile teie klassis leiduvatele andmetele või meetoditele. Te ei pääse neile juurde ilma ennast läbimata.

Lõpuks, kuna eksemplarid on kõige levinumad, pole dekoraatorit vaja. Iga teie loodud meetod luuakse automaatselt eksemplari meetodina, kui te ei ütle Pythonile teisiti.

Siin on näide:

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 nimi muutujale pääseb juurde mina . Pange tähele, kui näide_funktsioon nimetatakse, ei pea te ennast sisestama --- Python teeb seda teie eest.

Staatilised meetodid Pythonis

Staatilised meetodid on meetodid, mis on mingil moel klassiga seotud, kuid ei vaja juurdepääsu ühelegi klassipõhisele andmetele. Sa ei pea kasutama mina ja te ei pea isegi eksemplari installeerima, võite lihtsalt oma meetodile helistada:

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 @staatiline meetod dekoraatorit kasutati Pythonile ütlemiseks, et see meetod on staatiline meetod.

Staatilised meetodid sobivad suurepäraselt utiliitide funktsioonide jaoks, mis täidavad ülesannet eraldi. Nad ei pea (ega saa) juurdepääsu klassi andmetele. Need peaksid olema täielikult iseseisvad ja töötama ainult argumentidena edastatud andmetega. Võite kasutada staatilist meetodit kahe numbri liitmiseks või antud stringi printimiseks.

Klassimeetodid Pythonis

Klassimeetodid on kolmas ja viimane teadaolev OOP -meetoditüüp. Klassimeetodid teavad oma klassi. Nad ei pääse juurde konkreetsetele eksemplari andmetele, kuid saavad helistada muudele staatilistele meetoditele.

Klassimeetodid ei vaja mina argumendina, kuid nad vajavad parameetrit nimega cls . See tähistab klassi ja nagu minagi, saab Python automaatselt sisse.

Klassimeetodid luuakse, kasutades @klassimeetod dekoraator.

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

Klassimeetodid on tõenäoliselt kolmest segasemad meetoditüübid, kuid neil on oma kasutusvõimalused. Klassimeetodid võivad manipuleerida klassi endaga, mis on kasulik, kui töötate suuremate ja keerukamate projektide kallal.

Millal igat meetoditüüpi kasutada

See võib tunduda raske ja heidutav otsus Pythoni meetoditüüpide vahel valides, kuid peagi saate sellest natuke harjutades aru.

kuidas instagramis reklaamidest lahti saada

Isegi kui kirjutate ainult väikeseid skripte oma lõbuks, on Pythoni mõne muu OOP -funktsiooni õppimine suurepärane oskus teada ja see võib aidata teie koodi tõrkeotsingut lihtsustada ja tulevikus uuesti kasutada.

Kokkuvõttes:

  1. Eksemplari meetodid: Kõige tavalisem meetoditüüp. Võimalus juurde pääseda igale eksemplarile unikaalsetele andmetele ja atribuutidele.
  2. Staatilised meetodid: Kursusele ei pääse juurde midagi muud. Täiesti iseseisev kood.
  3. Klassimeetodid: Saab juurdepääsu piiratud meetoditele klassis. Saab muuta klassispetsiifilisi üksikasju.

Kui see õpetus oli natuke arenenud või ei olnud päris see, mida otsisite, siis miks mitte vaadata neid kursusi, et minna Pythoni algajast profiks? Need 5 veebisaiti sobivad suurepäraselt ka Pythoni algajatele. Kui soovite Pythoni füüsilises ja reaalses maailmas kasutada, kuid teil on Raspberry Pi igav, siis kuidas on meie juhendiga Arduino juhtimine Pythoni abil ?

Jaga Jaga Piiksuma E -post Kuidas Windowsi arvutit käsuviiba abil puhastada

Kui teie Windowsi arvutil on mäluruumi vähe, puhastage prügi nende kiirete käsuviiba utiliitide abil.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Python
Autori kohta Joe Coburn(136 artiklit avaldatud)

Joe on lõpetanud arvutiteaduse Ühendkuningriigi Lincolni ülikoolis. Ta on professionaalne tarkvaraarendaja ja kui ta ei lennuta droonidega ega kirjuta muusikat, võib teda sageli leida pildistamas või videoid tootmas.

Rohkem Joe Coburnilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin