„Python“

Operatoriaus perkrova „Python“

Operatoriaus perkrova „Python“
Perkrovimas atitinka metodo ar operatoriaus polinkį veikti įvairiais būdais programavimo prasme, atsižvelgiant į technikos parametrus arba operandus, kuriais operatorius veikia. Operatoriaus perkrova reiškia, kad ilgalaikė reikšmė suteikiama virš jų iš anksto nustatytos funkcinės reikšmės.  „Python“ operatoriai veikia įmontuotose klasėse, tačiau įvairiems tipams tas pats operatorius veikia skirtingai. Šiame vadove pamatysime, kaip galėtume perkrauti operatorių „Python“.

Pavyzdžiui, operatorius + gali matematiškai pridėti du skaičius, sujungti du sąrašus arba susieti eilutes. Čia yra paprasta pitono programa, skirta parodyti + operatoriaus, naudojamo pridėjimui ir sujungimui, žvilgsnį.

Na, kas bus, jei šiuos operatorius naudosime objektams a vartotojo apibrėžta klasė? Paimkime šią programą, kuri bando imituoti vietą 2-D matmenų schemoje. Žemiau jūs jau galite tai pamatyti, nes „Python“ nesuprato, kaip prisijungti prie 2 koordinačių egzempliorių, a Įveskite klaidą yra generuojamas.

Šią užduotį „Python“ galime atlikti perkrovdami operatorių, tačiau pirmiausia supraskime specialius metodus.

Specialūs stebuklingi metodai

Klasės metodai pradedant dvigubas pabraukimas yra klasifikuojami „Python“ kaip specialūs metodai ar magijos funkcijos. Funkcijos, kurios naudojamos konkrečiai veiklai vykdyti. Įprasti klasėje aprašomi metodai nėra tokios funkcijos. Vienas iš jų būtų __init_ () funkciją, kurią minėjome aukščiau. Bet kada, kai sukursime naują tos klasės objektą, jis bus vadinamas. Mes padarysime savo klasę atitinkančias įmontuotas funkcijas per stebuklingas funkcijas. „Python“ yra keletas kitų specialių funkcijų.

Dvejetainiai arba matematiniai operatoriai

Čia pateikiama išsami informacija apie magijos funkcijas perkraunant pitonų dvejetainius ar matematinius operatorius.

Santykių ar palyginimų operatoriai

Toliau pateikiama informacija apie magijos funkcijas perkraunant pitonų palyginimo ar reliacinius operatorius.

Užduočių operatoriai

Čia pateikiama išsami informacija apie kai kurias stebuklingas funkcijas, skirtas perkrauti priskyrimo operatorius pitono kode.

Dabar atėjo laikas pažvelgti į keletą pavyzdžių kodų, kai mes naudojame aukščiau minėtus magiškus metodus ir perkrauname tam tikrus operatorius.

Perkraukite dvejetainius arba matematinius operatorius

01 pavyzdys: papildymo operatorius
Turėsite vykdyti __papildyti_() metodas klasėje perkrauti + operatorius. Didžiulė pareiga ateina su didele jėga. Vykdydami šį metodą, galite padaryti viską, ko norite. Bet daug racionaliau grąžintiCoord ' koordinačių sumos objektas.

Kai bandėte „c1 + c2“, „Python“ iš tikrųjų vadina savo magija .__add __ () metodas kaip c1.__add __ (c2) arba Coord.__add __ (c1, c2).

02 pavyzdys: daugybos operatorius
Taip pat galite net perkrauti kelis dvejetainius operatorius naudodamiesi magijos funkcijomis. Tame pačiame aukščiau pateiktame pavyzdyje, perkraunant daugybos operatorių, mes gauname 2, 6 kaip mūsų atsakymas į magijos funkciją.

03 pavyzdys: atimties operatorius
Naudodami atimties operatorių gavome -1, -1 kaip mūsų atsakymas.

04 pavyzdys: maitinimo operatorius
Mes perkrauta galia operatorius, naudodamas galios magijos funkciją; mes turime 1, 8.

05 pavyzdys: Modulio operatorius
Perkrausdami modulio operatorių, mes panaudojome __mod__ magijos funkcija gauti modulį.

Taip pat galite naudoti kitus matematinius operatorius, pvz.g., skyriaus ir grindų skyriaus operatorius, perkraunamas.

Perkrauti palyginimo operatorius

„Python“ neapriboja operatorių perkrovos tik dvejetainiais arba aritmetiniais operatoriais. Mes taip pat galime perkrauti palyginimo operatorius.

01 pavyzdys: mažiau nei operatorius
Tarkime, kad mums reikėjo mažiau nei "<' symbol mūsų 'Coord ' klasė bus įgyvendinta. Palyginkime šių šaltinio argumentų vertę ir duokime atsakymą. Kaip įprasta, jį galima pritaikyti. Turime tris objektus ir juos lyginame spausdintuose pareiškimuose. Dėl to mes gausime tą objektą c1 yra mažiau nei c2, taigi jis išleidžia Tiesa. Iš kitos pusės, c2 ir c1 yra puikesnis nei c3; Štai kodėl tiek klaidinga išvestis.

02 pavyzdys: nelygu operatoriui
Dabar perkraunama Nėra lygus (!=) palyginimo operatorius, gausite Tiesa pirmojo ir antrojo spausdinimo teiginio atveju, nes jis tenkina sąlygą, kad abu objektai nėra lygūs. Kita vertus, iš 1 objekto gaunamas tas pats, kaip ir iš 3 objekto, kuris neatitinka „Nelygus“ reikalavimo. Štai kodėl išvedamas trečiasis atspausdintas pareiškimas Klaidinga kaip rezultatas.

03 pavyzdys: didesnis arba lygus operatoriui
Pabandykime tą patį pavyzdį perkraunant didesnis arba lygus operatoriui. Pirmojo spausdinto pareiškimo atveju mes turime 2> = 13, kuris yra netiesa; todėl jis duoda klaidingą. Antrame ir trečiame spausdintiniuose pareiškimuose gavome 13> = 2 ir 2> = 2, atitinkamai. Abu yra Tiesa nes jie tenkina sąlygą, didesnę nei arba lygi.

Išbandykite kitus palyginimo operatorius, pvz.g., reikšmingesnis nei „lygus“ arba „lygus“ jūsų kodui.

Perkraukite priskyrimo operatorius

Pažvelkite į priskyrimo operatoriaus perkrovos pavyzdį. Mes pateikiame panašų pavyzdį, kai perkraunama "- =" užduoties operatorius. Apibrėžėme du objektus, kurių y ir z koordinačių reikšmės. Pirmasis objektas c1 perduoda savo vertybes 'savarankiškai.y ' ir 'savarankiškai.z ' kintamieji. Kita vertus, objektas c2 perduoda savo vertybes 'kita.y ' ir 'kita.z '.

Objektas c1 turi reikšmes savarankiškai.y = 1 ir savarankiškai.z = 1 dabar. Objektas c2 vertybės “kita.y = -2 ' ir 'kita.z = -3 ' buvo perduota atimta nuo objekto c1 vertybes. Rezultatas yra c1 - c2 savarankiškai.y - kita.y = 1 - (- 2) ir savarankiškai.z - kita.z = 1 - (- 3). Apskaičiuotas rezultatas, kuris yra 3 ir 4, išsaugotas „savyje“.x 'ir' self.z 'dėl priskyrimo operatoriaus' =.'Spausdinant šis kodas pateiks objekto c1, kuriame yra du kintamieji, rezultatą savarankiškai.y = 3 ir savarankiškai.z = 4.

Išvada

Mes stengiamės apimti visus jūsų kodo operatorius, kad geriau suprastume operatoriaus perkrovą.

Kaip naudoti „GameConqueror Cheat Engine“ sistemoje „Linux“
Straipsnyje pateikiamas „GameConqueror“ apgaulės variklio naudojimo „Linux“ vadove. Daugelis žaidėjų, žaidžiančių sistemoje „Windows“, dažnai naudoja ...
Geriausi „Linux“ žaidimų konsolių emuliatoriai
Šiame straipsnyje bus išvardyta populiari žaidimų konsolių emuliavimo programinė įranga, skirta „Linux“. „Emuliacija“ yra programinės įrangos suderina...
Geriausi „Linux“ žaidimų distristai 2021 m
„Linux“ operacinė sistema nuėjo ilgą kelią nuo originalios, paprastos, serverio išvaizdos. Ši OS pastaraisiais metais nepaprastai patobulėjo ir dabar ...