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.

Maginės metodikos Python – kas už to slypi

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 ==.

Magijos metodai Python'e – kas už to slepiasi

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.

Maginės metodas Python'e – kas už to slypi

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šą.

Maginės metodikos Python kalboje – kas už to slypi

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ų.

Maginės metodikos Python – kas už to slypi

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.

Maginės metodikos Python'e – kas už to slypi

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.