Python

Preobremenitev operaterja v Pythonu

Preobremenitev operaterja v Pythonu
Preobremenitev ustreza težnji metode ali operaterja, da deluje na več načinov v smislu programiranja na podlagi parametrov, posredovanih tehniki ali operandom, na katerih operater deluje. Preobremenitev operaterja pomeni, da je podaljšan pomen nad njihovim vnaprej določenim funkcionalnim pomenom.  Pythonovi operaterji delujejo za vgrajene razrede, vendar pri različnih vrstah isti operater deluje drugače. V tem priročniku bomo videli, kako lahko naredimo preobremenitev operaterja v Pythonu.

Na primer, operater + lahko matematično doda dve številki, združi dva seznama ali združi nize. Tukaj je preprost program python, ki prikazuje vpogled v operater +, ki se uporablja za dodajanje in združevanje.

No, kaj pride, če te operatorje uporabimo za predmete v a uporabnik definiran razred? Vzemimo naslednji program, ki poskuša simulirati točko v 2-D shemi dimenzij. Spodaj to že vidite, ker Python ni razumel, kako združiti 2 primerka koordinat, a Tip Napaka se ustvari.

To nalogo lahko v Pythonu dosežemo s preobremenitvijo operaterja, najprej pa razumimo posebne metode.

Posebne magične metode

Razredne metode, ki se začnejo z dvojno podčrtaj so v Pythonu razvrščeni kot posebne metode ali čarovniške funkcije. Funkcije, ki se uporabljajo za izvajanje določenih dejavnosti. Običajne metode, ki jih opisujemo za razred, niso take funkcije. Eden od njih bi bil __v_() funkcijo, ki smo jo omenili zgoraj. Vsakič, ko v tem razredu zgradimo nov objekt, se imenuje. Vgrajene funkcije bomo s pomočjo čarobnih funkcij naredili združljive s svojim razredom. V Pythonu obstaja še nekaj drugih posebnih funkcij.

Binarni ali matematični operaterji

Tu so podrobnosti o čarobnih funkcijah za preobremenitev bitovih ali matematičnih operaterjev python.

Relacijski ali primerjalni operaterji

Spodaj so podrobnosti o čarobnih funkcijah za preobremenitev primerjalnih ali relacijskih operaterjev python.

Operatorji dodelitve

Tu so podrobnosti nekaterih čarobnih funkcij za preobremenitev operaterjev dodelitve v python kodi.

Zdaj je čas, da si ogledamo nekaj vzorčnih kod, ko uporabimo zgoraj omenjene čarovniške metode in preobremenimo nekatere operaterje.

Preobremenite binarne ali matematične operatorje

Primer 01: Operater seštevanja
Morali boste uveljaviti __add_ () v razredu za preobremenitev + operater. Velika dolžnost prispe z veliko močjo. Znotraj te metode lahko počnete vse, kar želite. Toda veliko bolj smotrno je vrnitiCoord ' predmet koordinatne vsote.

Ko ste poskusili c1 + c2, Python dejansko pokliče svojo čarovnijo .__dodaj __ () kot c1.__dodaj __ (c2) ali Coord.__dodaj __ (c1, c2).

Primer 02: Operator množenja
Prav tako lahko celo z binarnimi funkcijami preobremenite več binarnih operaterjev. V istem zgornjem primeru dobimo med preobremenitvijo operatorja množenja 2, 6 kot naš odgovor na čarobno funkcijo.

Primer 03: Operator odštevanja
Z uporabo operatorja odštevanja smo dobili -1, -1 kot naš odgovor.

Primer 04: Power Operator
Preobremenili smo moč med uporabo funkcije magične moči; imamo 1, 8.

Primer 05: Operater modula
Pri preobremenitvi operaterja modula smo uporabili __mod__ čarobna funkcija za pridobitev modula.

Uporabite lahko tudi druge matematične operatorje, npr.g., upravljalnik pregrade in tal, za preobremenitev.

Preobremenite operaterje primerjave

Python ne omejuje preobremenitve operaterjev le na binarne ali aritmetične operatorje. Preobremenimo lahko tudi operaterje primerjave.

Primer 01: Manj kot operater
Predpostavimo, da smo zahtevali manj kot "<' symbol v našem 'Coord ' razred, ki ga je treba izvesti. Primerjajmo vrednost teh argumentov iz vira in dajmo odgovor. Kot običajno se lahko uporabi. Imamo tri predmete in jih primerjamo v izjavah za tiskanje. Kot rezultat bomo dobili ta predmet c1 je manj kot c2, torej izide Prav. Po drugi strani, c2 in c1 so bolj odlično kot c3; zato oba napačna izhoda.

Primer 02: Ni enako operaterju
Zdaj preobremenitev Ni enako (!=) operater primerjave, boste dobili Prav v primeru prve in druge izjave za tiskanje, ker izpolnjuje pogoj, da oba predmeta nista enaka. Po drugi strani pa objekt 1 daje enako kot objekt 3, ki ne izpolnjuje zahteve Ni enako. Zato izide tretja izjava za tiskanje Lažno kot rezultat.

Primer 03: Večji ali enak operaterju
Poskusimo isti primer za preobremenitev večja ali enaka operaterju. V primeru prve izjave za tisk imamo 2> = 13, kateri je ni res; zato daje False. V drugi in tretji izjavi za tisk smo dobili 13> = 2 in 2> = 2, oz. Oba sta Prav saj izpolnjujejo pogoj, večji ali enak.

Preizkusite druge primerjalne operaterje, npr.g., pomembnejši od, enak, "manjši ali enak" v vaši kodi.

Preobremenite operaterje dodelitve

Oglejte si primer preobremenitve operaterja dodelitve. Podoben primer jemljemo s preobremenitvijo '- =' operater dodelitve. Določili smo dva predmeta z vrednostma y in z koordinatama. Prvi predmet c1 posreduje svoje vrednosti 'jaz.y ' in 'jaz.z ' spremenljivk. Po drugi strani pa objekt c2 posreduje svoje vrednosti 'drugo.y ' in 'drugo.z '.

Predmet c1 ima vrednosti sebe.y = 1 in sebe.z = 1 takoj zdaj. Predmet c2 vrednote 'drugo.y = -2 ' in 'drugo.z = -3 ' je bilo preneseno na odšteti od predmeta c1 vrednote. Posledično je rezultat c1 - c2 sebe.y - drugo.y = 1 - (- 2) in sebe.z - drugo.z = 1 - (- 3). Izračunani rezultat, ki je 3 in 4, je bil shranjen v "self".x 'in' self.z 'zaradi operaterja dodelitve' =.'Ob tiskanju bo ta koda prikazala rezultat predmeta c1, ki ima dve spremenljivki sebe.y = 3 in sebe.z = 4.

Zaključek

V vaši kodi poskušamo zajeti vse operaterje za boljše razumevanje preobremenitve operaterja.

WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...
Levi gumb miške ne deluje v sistemu Windows 10
Če s prenosnikom ali namiznim računalnikom uporabljate namensko miško, vendar gumb miške z levim klikom ne deluje v operacijskem sistemu Windows 10/8/...
Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...