Python

Operaattorin ylikuormitus Pythonissa

Operaattorin ylikuormitus Pythonissa
Ylikuormitus vastaa menetelmän tai operaattorin taipumusta toimia monin tavoin ohjelmoinnin kannalta tekniikalle annettujen parametrien tai operandien perusteella, joilla operaattori toimii. Operaattorin ylikuormitus tarkoittaa, että pitkäaikainen merkitys annetaan ennalta määritetyn toiminnallisen merkityksen yläpuolella.  Python-operaattorit toimivat sisäänrakennetuissa luokissa, mutta eri tyyppien kohdalla sama operaattori toimii eri tavalla. Näemme, miten voimme tehdä operaattorin ylikuormituksen Pythonissa tässä oppaassa.

Esimerkiksi + -operaattori voi lisätä matemaattisesti kaksi numeroa, yhdistää kaksi luetteloa tai ketjuttaa merkkijonoja. Tässä on yksinkertainen python-ohjelma, joka näyttää vilauksen + -operaattorista, jota käytetään lisäykseen ja ketjutukseen.

No, mitä tapahtuu, jos käytämme näitä operaattoreita a käyttäjän määrittelemä luokassa? Otetaan seuraava ohjelma, joka yrittää simuloida pistettä 2-D-mittakaavassa. Alla näet jo sen, koska Python ei ymmärtänyt, miten liittyä kahteen koordinaatti-ilmentymään, a Tyyppivirhe syntyy.

Voimme suorittaa tämän tehtävän Pythonissa operaattorin ylikuormituksen avulla, mutta ensin ymmärretään erityiset menetelmät.

Erityiset maagiset menetelmät

Luokkamenetelmät, jotka alkavat kaksinkertainen alaviiva luokitellaan Pythonissa erityismenetelmiksi tai maagisiksi toiminnoiksi. Toiminnot, joita käytetään tiettyjen toimintojen suorittamiseen. Tavalliset luokalle kuvaamamme menetelmät eivät ole sellaisia ​​toimintoja. Yksi niistä olisi __sen sisällä_() toiminto, jonka mainitsimme edellä. Aina kun rakennamme uuden objektin kyseiseen luokkaan, sitä kutsutaan. Teemme luokkansa mukaisiksi sisäänrakennetut toiminnot taikatoimintojen avulla. Pythonissa on useita muita erikoistoimintoja.

Binaariset tai matemaattiset operaattorit

Tässä on maagisten toimintojen yksityiskohdat python-binaaristen tai matemaattisten operaattoreiden ylikuormittamiseksi.

Suhde- tai vertailuoperaattorit

Alla on tietoja taikuustoiminnoista python-vertailun tai relaatio-operaattoreiden ylikuormittamiseksi.

Tehtäväoperaattorit

Tässä on tietoja joistakin maagisista toiminnoista, joilla tehtäväoperaattorit ylikuormitetaan python-koodissa.

Nyt on aika vilkaista pari esimerkkikoodia, kun käytämme yllä mainittuja taikamenetelmiä ja ylikuormitamme tiettyjä operaattoreita.

Ylikuormita binaarisia tai matemaattisia operaattoreita

Esimerkki 01: lisäysoperaattori
Sinun on pantava täytäntöön __lisätä_() - luokan menetelmä ylikuormittaa + operaattori. Suuri velvollisuus saapuu suurella voimalla. Tämän menetelmän sisällä voit tehdä mitä haluat. Mutta on paljon järkevämpää palauttaaCoord ' koordinaattien summa.

Kun yritit c1 + c2, Python tosiasiassa kutsuu sen taikuutta .__add __ () -menetelmä muodossa c1.__add __ (c2) tai Coord.__lisätä __ (c1, c2).

Esimerkki 02: Kertolaskuoperaattori
Samoin voit jopa ylikuormittaa useita binäärioperaattoreita taikatoimintojen avulla. Samassa yllä olevassa esimerkissä saamme samalla kun kerroinoperaattori ylikuormitetaan 2, 6 vastauksena taikatoimintoon.

Esimerkki 03: Vähennysoperaattori
Vähennysoperaattorin avulla saimme -1, -1 vastauksemme.

Esimerkki 04: Sähkökäyttäjä
Ylikuormitimme teho operaattorin käyttäessäsi maagista toimintoa; saimme 1, 8.

Esimerkki 05: Moduulioperaattori
Ylikuormittamalla moduulioperaattoria, olemme käyttäneet __mod__ maaginen toiminto moduulin saamiseksi.

Voit käyttää myös muita matemaattisia operaattoreita, esim.g., divisioonan ja lattiajaon käyttäjä ylikuormitusta varten.

Ylikuormita vertailuoperaattoreita

Python ei rajoita operaattoreiden ylikuormitusta vain binääri- tai aritmeettisiin operaattoreihin. Voimme myös ylikuormittaa vertailuoperaattoreita.

Esimerkki 01: alle käyttäjän
Oletetaan, että tarvitsemme vähemmän kuin '<' symbol meidän 'Coord ' luokka toteutetaan. Verrataan näiden argumenttien arvoa lähteestä ja saadaan vastaus. Kuten tavallista, sitä voidaan käyttää. Meillä on kolme esinettä, ja vertaamme niitä painotetuissa lausekkeissa. Tämän seurauksena saamme kyseisen objektin c1 On Vähemmän kuin c2, joten se tuottaa Totta. Toisaalta, c2 ja c1 ovat erinomaisempi kuin c3; siksi molemmat väärät tulokset.

Esimerkki 02: Ei yhtä suuri kuin operaattori
Nyt ylikuormitettu Ei tasa-arvoinen (!=) vertailuoperaattori, saat Totta ensimmäisen ja toisen tulosteen tapauksessa, koska se täyttää ehdon, että molemmat objektit eivät ole samanarvoisia. Toisaalta esine 1 tuottaa saman kuin esine 3, joka ei täytä vaatimusta Ei ole yhtä suuri. Siksi kolmas tulostuslauseke tuottaa Väärä tuloksena.

Esimerkki 03: Suurempi tai yhtä suuri kuin operaattori
Kokeillaan samaa esimerkkiä suurempi tai yhtä suuri operaattorille. Ensimmäisen painetun lausunnon tapauksessa meillä on 2> = 13, mikä on ei totta; siksi se tuottaa väärän arvon. Toisessa ja kolmannessa painetussa lausunnossa saimme 13> = 2 ja 2> = 2, vastaavasti. Molemmat ovat Totta koska ne täyttävät ehdon suurempi tai yhtä suuri kuin.

Kokeile muita vertailuoperaattoreita, esim.g., merkitsevämpi kuin, yhtä suuri, 'pienempi tai yhtä suuri' 'myös koodissasi.

Ylikuormita tehtävänoperaattoreita

Katso esimerkki tehtäväoperaattorin ylikuormituksesta. Otamme samanlaisen esimerkin '- =' tehtävänoperaattori. Olemme määrittäneet kaksi objektia, joiden arvot ovat y ja z. Ensimmäinen esine c1 välittää arvot itse.y ' ja itse.z ' muuttujat. Toisaalta esine c2 välittää arvot 'muu.y ' ja 'muu.z '.

Esine c1 on arvot itse.y = 1 ja itse.z = 1 juuri nyt. Objekti c2 arvot 'muut.y = -2 ' ja 'muu.z = -3 ' on välitetty vähennetty esineestä c1 arvot. Tämän seurauksena tulokset ovat c1 - c2 itse.y - muu.y = 1 - (- 2) ja itse.z - muu.z = 1 - (- 3). Laskettu tulos, joka on 3 ja 4, on tallennettu itseensä.x 'ja' itse.z 'johtuen määritysoperaattorista' =.'Tulostettaessa tämä koodi tuottaa kohteen c1 tuloksen, jolla on kaksi muuttujaa itse.y = 3 ja itse.z = 4.

Johtopäätös

Yritämme kattaa kaikki operaattorit koodissasi ymmärtääksemme paremmin operaattorin ylikuormitusta.

Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...