
Mark Lucas
0
1894
462
Metode Python-a često mogu biti zbunjujuće kad uđete u objektno orijentirano programiranje (OOP). Ovaj vodič opisuje tri glavne vrste metoda u Pythonu.
3 vrste metoda u Pythonu
Postoje tri vrste metoda u Pythonu: primjere metode, statičke metode, i klasne metode.
Znajući razlike nije uvijek potrebno kodirati osnovne Python skripte, ali kad jednom pređete na OOP, razlike mogu donijeti veliku promjenu.
Ako ste novi u Python-u ili želite eksperimentirati bez ikakvog instaliranja, obavezno posjetite ove internetske interaktivne Python-ove školjke, Isprobajte Python u svom pregledniku s ovim besplatnim internetskim interaktivnim školjkama, pokušajte Python u svom pretraživaču s ovim besplatnim internetskim interaktivnim Školjke Bez obzira na to prolazite li kroz ove Python primjere ili pregledate osnove nizova i popisa, možete testirati kôd pravo u svom pregledniku. Evo najboljih internetskih tumača Python-a koje smo pronašli. .
Prije nego što započnemo: Razumijevanje dekorativnih obrazaca
Prije nego što uvidimo u razlike, važno je razumjeti obrazac dizajna poznat kao ukras uzorak, ili jednostavno nazvano a dekorater.
Dekorateri zvuče složeno, ali nema se čega bojati. Dekorati su jednostavno funkcije. Možete ih sami napisati ili koristiti one uključene u knjižnice ili standardnu Python knjižnicu.
Kao i bilo koja funkcija, dekorateri izvršavaju zadatak. Razlika je u tome što ukrasitelji primjenjuju logiku ili mijenjaju ponašanje drugih funkcija. Oni su izvrstan način ponovne uporabe koda i mogu pomoći u odvajanju logike od pojedinačnih briga.
Uzorak ukrasitelja je preferirani Pythonov način definiranja statičkih ili klasnih metoda. Evo kako jedan izgleda u Pythonu:
klasa DecoratorExample: "" "Primjer klase" "" def __init __ (samo): "" "Primjer postavljanja" "" print ('Zdravo, svijet!') @staticmethod def example_function (): "" "Ova metoda je ukrašena!" ispis ("ja ukrašena funkcija!") de = DecoratorExample () de.example_function ()
Dekorati moraju odmah prethoditi deklaraciji funkcija ili klase. Oni počinju s @ , i za razliku od uobičajenih metoda, ne trebate stavljati zagrade na kraj ako ne unesete argumente.
Moguće je kombinirati više dekoratora, napisati svoje vlastite i primijeniti ih na klase, ali ništa od toga nećete morati raditi za ove primjere.
Metode instancije u Pythonu
Metode instancije su najčešća vrsta metoda u Python klasama. To su takozvani jer mogu pristupiti jedinstvenim podacima svoje instance. Ako imate dva predmeta kreirana iz automobilske klase, svaki od njih može imati različita svojstva. Mogu imati različite boje, veličinu motora, sjedala i tako dalje.
Metode instancije moraju imati sam kao parametar, ali to ne morate prolaziti u svakom trenutku. Jastvo je još jedan poseban pojam Pythona. Unutar bilo koje instance metode možete koristiti self za pristup bilo kojim podacima ili metodama koje se mogu nalaziti u vašoj klasi. Nećete moći pristupiti njima bez prolaska kroz sebe.
Konačno, kao što su primjerice metode najčešći, nije potreban ukras. Svaka metoda koju stvorite automatski će biti stvorena kao metoda primjerka, osim ako Pythonu kažete drugačije.
Evo primjera:
klasa DecoratorExample: "" "Primjer klase" "" def __init __ (samo): "" "Primjer postavljanja" "" ispis ("Zdravo, svijet!") self.name = 'Decorator_Example' def example_function (self): "" " Ova metoda je metoda instance! "" "Print (" Ja sam primjerak metoda! ") Print (" Moje ime je "+ self.name) de = DecoratorExample () de.example_function ()
Ime varijabli se pristupa kroz sam. Primijetite to kada example_function zovete, ne morate prenijeti samo sebe u Python to radi za vas.
Statičke metode u Pythonu
Statičke metode su metode koje su na neki način povezane s klasom, ali ne trebaju pristupiti bilo kakvim podacima o klasi. Ne morate koristiti sam, i čak ne morate instancirati instancu, možete jednostavno nazvati svoju metodu:
klasa DecoratorExample: "" "Primjer klase" "" def __init __ (samo): "" "Primjer primjera" "" ispis ("Zdravo, svijet!") @staticmethod def example_function (): "" "Ova metoda je statička metoda ispis! "" "('I \' ma statička metoda! ') de = DecoratorExample.example_function ()
@staticmethod stolisnik je upotrijebljen da kaže Pythonu da je ova metoda statična metoda.
Statičke metode odlične su za korisne funkcije, koje zadatak obavljaju izolirano. Ne trebaju (i ne mogu) pristupiti podacima klase. Trebali bi biti u potpunosti samostalni i raditi samo s podacima koji su predati kao argumenti. Možete koristiti statičku metodu za dodavanje dva broja ili ispis zadanog niza.
Metode klase u Pythonu
Metode klase su treća i posljednja vrsta OOP metode koju treba znati. Metode nastave znaju za svoju klasu. Ne mogu pristupiti određenim podacima instance, ali mogu pozvati i druge statičke metode.
Metode poduke nisu potrebne sam kao argument, ali im treba parametar zvan CLS. To se zalaže klasa, i poput sebe, Python automatski prelazi u njega.
Metode klase kreirane su pomoću @classmethod dekorater.
klasa DecoratorExample: "" "Primjer klase" "" def __init __ (samo): "" "Primjer primjera" "" print ('Zdravo, svijet!') @classmethod def example_function (cls): "" "Ova metoda je klasa metoda! "" "ispis ('I \' ma class method! ') cls.some_other_function () @staticmethod def some_other_function (): print (' Hello! ') de = DecoratorExample () de.example_function ()
Metode klase su možda i zbunjujuće vrste metoda od ove tri, ali imaju svoju upotrebu. Metode klase mogu manipulirati samom klasom, što je korisno kada radite na većim, složenijim projektima.
Kada koristiti svaku vrstu metoda
Može se činiti teškom i zastrašujućom odlukom o odabiru između vrsta metoda u Pythonu, ali ubrzo ćete se upoznati s malo prakse.
Čak i ako pišete samo malene skripte za zabavu, učenje druge OOP značajke Pythona velika je vještina koju treba znati i može vam pomoći da kôd bude lakši za rješavanje problema i da ga budete lakše koristili u budućnosti.
U sažetku:
- Metode instancije: Najčešća vrsta metode. Moguće je pristupiti podacima i svojstvima jedinstvenim za svaku instancu.
- Statičke metode: Nije moguće pristupiti bilo čemu drugom u razredu. Potpuno samostalni kod.
- Načini nastave: Može pristupiti ograničenim metodama u razredu. Može mijenjati detalje vezane uz klasu.
Ako je ovaj udžbenik malo napredan ili nije baš ono što ste tražili, zašto ne biste pogledali ove tečajeve da biste prešli od početnika Pythona do 5 tečajeva koji će vas od početnika Pythona provesti do 5 tečajeva koji će vam pomoći Vodite vas od Python-a početnika do Pro Ove pet tečajeva naučit će vas sve o programiranju na Python-u, jednom od trenutno najpopularnijih jezika. ? Ovih 5 web stranica također su sjajne za početnike Pythona. Ako želite fizičku upotrebu stvarnog svijeta Pythona, ali vam je dosadno kako Raspberry Pi, kako bi bilo u našem vodiču za kontrolu Arduinoa s Pythonom Kako programirati i kontrolirati Arduino s Pythonom Kako programirati i kontrolirati Arduino s Pythonom Nažalost, to nemoguće je izravno programirati Arduino na Pythonu, ali možete ga upravljati preko USB-a pomoću Python programa. Evo kako. ?