Jei giliau panersite į Python pasaulį, susidursite su įdomiomis sąvokomis, kurios žymiai supaprastina programavimą ir padidina lankstumą. Viena iš šių ypatybių yra vadinamosios maginės metodai. Šie specialūs metodai suteikia jums galimybę pritaikyti savo objektų elgesį ir yra neatsiejama Python kalbos dizaino dalis. Šiame gidą aš parodysiu, kaip veikia maginės metodai, pateiksiu keletą svarbių pavyzdžių ir paaiškinsiu jų reikšmę.
Pagrindiniai pastebėjimai
- Maginės metodai yra specialūs iš anksto apibrėžti metodai su unikalią reikšme.
- Galite paveikti objektų elgesį, perrašydami šiuos metodus.
- Svarbūs metodai yra, be kita ko, __eq__, __len__ ir __str__.
Žingsnis po žingsnio vadovas
1. Įvadas į maginius metodus
Pirmiausia pradėkite nuo maginių metodų apibrėžimo. Maginės metodai, dar vadinami Dunder metodais (dvigubas pabraukimas), yra integruotos funkcijos Python, kurios identifikuojamos pagal specialias pavadinimų konvencijas. Jie leidžia jums pritaikyti savo klasės elgesį tam tikroms operacijoms, tokioms kaip palyginimai, ilgiai ir atvaizdai.

2. Paprasto etiketo sukūrimas
Norėdami pademonstruoti maginių metodų naudingumą, sukurkite paprastą etiketės objektą.
Čia mes paprasčiausiai saugosime tekstą, kurį turi vaizduoti mūsų etiketė. Konstruktorius __init__ yra vienas iš pamatų klasikų kūrimui Python.
3. Palengvinkite etikečių palyginimą
Be maginių metodų jūs negalite tiesiogiai palyginti objektų. Bandant tai padaryti, nesulauksite laukiamo elgesio.
Dabar galite palyginti etiketes, tiesiog naudodami ==.

4. Papildykite dar daugiau maginių metodų
Be __eq__ yra daugybė kitų naudingų maginių metodų, pavyzdžiui, __ne__ nelygumui.
Dabar galite taip pat patikrinti etikečių nelygumą, kas suteikia jums papildomo lankstumo.

5. Sukurkite loterijos bilieto klasę
Norėdami dar labiau pademonstruoti maginius metodus, sukurkite klasę loterijos bilietui. Ši klasė turės atributą loterijos numeriams.
Dabar turite klasę, kuri saugo loterijos numerių sąrašą.

6. Nustatykite loterijos bilieto ilgį
Naudokite maginį metodą __len__, kad nustatytumėte loterijos numerių skaičių biliete.
Grąžinti vertę, kuri atspindi objekto ilgį, ypač patogu, kai norite sužinoti elementų skaičių.

7. Objektų atvaizdavimo privalumai
Paprastas objektų atvaizdavimas Python gali būti sudėtingas. Norėdami pagerinti šį elgesį, perrašykite metodą __str__.
Šis metodas leidžia jums sukurti naudotojui patogią objekto simbolių reprezentaciją, kas labai naudinga šalinant klaidas.
8. Loterijos bilieto pavyzdžio užbaigimas
Dabar jūs kviečiate loterijos bilieto klasę ir perduodate numerių sąrašą.
Vykdydami šį kodą, pamatysite įgyvendintą simbolių reprezentaciją ir savo loterijos bilieto ilgį konsolėje.

Santrauka – Maginių metodų naudojimas Python
Šiame gide išmokote maginių metodų pagrindus Python. Dabar galite valdyti savo klasių elgesį perrašydami šiuos metodus. Nesvarbu, ar tai būtų palyginimai, ilgiai ar naudotojui pritaikyti atvaizdai – maginės metodai suteikia jums įvairių kūrimo galimybių jūsų Python kode.
Dažnai užduodami klausimai
Kas yra maginiai metodai Python?Maginės metodai yra specialūs iš anksto apibrėžti metodai Python, kurie valdo objektų elgesį tam tikrose situacijose.
Kodėl turėčiau naudoti maginius metodus?Jie leidžia lengvai pritaikyti klasių elgesį, todėl jas lengva naudoti ir palaiko Python specifines operacijas.
Kurie maginiai metodai yra dažniausiai naudojami?Dažniausiai naudojami yra __init__, __str__, __eq__, __len__ ir __ne__.
Ar maginiai metodai taip pat gali dirbti su savo atributais?Taip, maginiai metodai gali pasiekti bet kokius atributus klasėje, kad galėtų atlikti reikiamus palyginimus ar atvaizdavimus.