Python

Operatora pārslodze Python

Operatora pārslodze Python
Pārslodze atbilst metodes vai operatora tieksmei rīkoties vairākos veidos programmēšanas nozīmē, pamatojoties uz parametriem, kas norādīti tehnikai vai operandiem, ar kuriem operators darbojas. Operatora pārslodze nozīmē, ka ilgstoša nozīme tiek piešķirta virs viņu iepriekš noteiktās funkcionālās nozīmes.  Python operatori darbojas iebūvētajās klasēs, bet dažādiem tipiem viens un tas pats operators darbojas atšķirīgi. Šajā ceļvedī redzēsim, kā mēs varam veikt operatora pārslodzi Python.

Piemēram, operators + var matemātiski pievienot divus skaitļus, apvienot divus sarakstus vai savienot virknes. Šeit ir vienkārša pitona programma, lai parādītu ieskatu + operatorā, ko izmanto pievienošanai un savienošanai.

Kas notiek, ja mēs izmantojam šos operatorus objektiem a lietotājs definēts klasē? Ņemsim šādu programmu, kas mēģina simulēt vietu 2-D izmēru shēmā. Zemāk jūs to jau varat redzēt, jo Python nesaprata, kā savienot 2 koordinātu gadījumus, a Ierakstiet kļūdu tiek ģenerēts.

Šo uzdevumu mēs varam paveikt Python, izmantojot operatora pārslodzi, taču vispirms sapratīsim īpašās metodes.

Īpašas maģiskas metodes

Klases metodes, sākot ar dubultā pasvītrojums tiek klasificēti Python kā īpašas metodes vai burvju funkcijas. Funkcijas, kuras tiek izmantotas noteiktu darbību veikšanai. Parastās metodes, kuras mēs aprakstām klasei, nav šādas funkcijas. Viens no tiem būtu __tajā_() funkcija, kuru mēs minējām iepriekš. Jebkurā laikā, kad šajā klasē uzbūvējam jaunu objektu, to sauc. Mēs padarīsim mūsu klases atbilstošas ​​iebūvētajām funkcijām, izmantojot burvju funkcijas. Programmā Python ir vairākas citas īpašas funkcijas.

Binārie vai matemātiskie operatori

Šeit ir informācija par burvju funkcijām, lai pārslogotu pitona bināros vai matemātiskos operatorus.

Relāciju vai salīdzināšanas operatori

Tālāk ir sniegta informācija par maģiskajām funkcijām, lai pārslogotu pitona salīdzināšanas vai relāciju operatorus.

Uzdevumu operatori

Šeit ir informācija par dažām burvju funkcijām, lai piešķiršanas operatorus pārslogotu pitona kodā.

Tagad ir pienācis laiks ieskatīties pāris paraugu kodos, kad mēs izmantojam iepriekš minētās burvju metodes un pārslogojam noteiktus operatorus.

Pārslogojiet bināros vai matemātiskos operatorus

01. piemērs: pievienošanas operators
Jums būs jāpiemēro __pievienot_ () metode klasē, lai pārslogotu + operators. Liels pienākums pienāk ar lielu spēku. Šīs metodes ietvaros jūs varētu darīt visu, ko vēlaties. Bet ir daudz racionālāk atgrieztCoord ' koordinātu summas objekts.

Kad jūs izmēģinājāt c1 + c2, Python faktiski sauc savu burvību .__add __ () metode kā c1.__pievienot __ (c2) vai Koordu.__pievienot __ (c1, c2).

02. piemērs: reizināšanas operators
Tāpat jūs varat pārslogot vairākus bināros operatorus, izmantojot burvju funkcijas. Tajā pašā iepriekš minētajā piemērā, reizinot operatoru, mēs iegūstam 2, 6 kā mūsu atbilde uz burvju funkciju.

03. piemērs: atņemšanas operators
Izmantojot atņemšanas operatoru, mēs saņēmām -1, -1 kā mūsu atbilde.

04. Piemērs: enerģijas operators
Mēs pārslogojām jauda operators, izmantojot enerģijas maģijas funkciju; mēs saņēmām 1, 8.

05. piemērs: Moduļu operators
Pārslogojot moduļa operatoru, mēs esam izmantojuši __mod__ burvju funkcija, lai iegūtu moduli.

Varat izmantot arī citus matemātiskos operatorus, piem.g., nodaļas un grīdas sadalījuma operators, pārslodzei.

Pārslogojiet salīdzināšanas operatorus

Python neierobežo operatoru pārslodzi tikai ar bināriem vai aritmētiskiem operatoriem. Mēs arī varam pārslogot salīdzināšanas operatorus.

01. piemērs: mazāk nekā operators
Pieņemsim, ka mums vajadzēja mazāk nekā "<' symbol mūsu 'Coord ' klase, kas jāīsteno. Salīdzināsim šo argumentu vērtību no avota un sniegsim atbildi. Kā parasti, to var pielietot. Mums ir trīs objekti, un mēs tos salīdzinām drukātajos paziņojumos. Rezultātā mēs iegūsim šo objektu c1 ir mazāk nekā c2, tāpēc tas izdod Patiesi. No otras puses, c2 un c1 ir izcilāks nekā c3; tāpēc gan False output.

02. piemērs: nav vienāds ar operatoru
Tagad pārslogojot Nav vienāds (!=) salīdzināšanas operators, jūs saņemsiet Patiesi pirmā un otrā drukas paziņojuma gadījumā, jo tas atbilst nosacījumam, ka abi objekti nav vienādi. No otras puses, objekts 1 dod tādu pašu kā objekts 3, kas neatbilst prasībai Nav vienāds. Tāpēc tiek izdots trešais drukas paziņojums Nepatiesa rezultātā.

03. piemērs: Lielāks par vai vienāds ar operatoru
Izmēģināsim to pašu piemēru lielāks vai vienāds operatoram. Pirmā drukātā paziņojuma gadījumā mums ir 2> = 13, kurš ir nav taisnība; tāpēc tas dod False. Otrajā un trešajā drukas paziņojumā mēs saņēmām 13> = 2 un 2> = 2, attiecīgi. Abi ir Patiesi jo tie atbilst nosacījumam, kas ir lielāks vai vienāds ar.

Izmēģiniet citus salīdzināšanas operatorus, piemēram,.g., nozīmīgāks par, vienāds ar, “mazāks vai vienāds ar”, arī jūsu kodā.

Pārslogojiet uzdevumu operatorus

Apskatiet piešķiršanas operatora pārslodzes piemēru. Mēs izmantojam līdzīgu piemēru ar '- =' norīkojuma operators. Mēs esam definējuši divus objektus, kuru vērtības ir y un z koordinātas. Pirmais objekts c1 nodod savas vērtības 'sevis.y ' un 'sevis.z ' mainīgie. No otras puses, objekts c2 nodod savas vērtības 'cits.y ' un 'cits.z '.

Objekts c1 ir vērtības pats.y = 1 un pats.z = 1 tieši tagad. Objekts c2 vērtības 'cits.y = -2 ' un 'cits.z = -3 ' ir nodota atņemts no objekta c1 vērtības. Rezultātā c1 - c2 rezultāti pats.y - cits.y = 1 - (- 2) un pats.z - cits.z = 1 - (- 3). Aprēķinātais rezultāts, kas ir 3 un 4, ir saglabāts “es”.x 'un' sevis.z 'piešķiršanas operatora dēļ' =.'Drukājot, šis kods izdos objekta c1 rezultātu, kuram ir divi mainīgie pats.y = 3 un pats.z = 4.

Secinājums

Mēs cenšamies aptvert visus operatorus jūsu kodā, lai labāk izprastu operatora pārslodzi.

Izmantojot X-Mouse Button Control, atšķirīgi mainiet peles pogas atšķirīgai programmatūrai
Varbūt jums ir nepieciešams rīks, kas varētu mainīt peles vadību ar katru lietoto lietojumprogrammu. Ja tas tā ir, varat izmēģināt lietojumprogrammu a...
Microsoft Sculpt Touch bezvadu peles apskats
Es nesen lasīju par Microsoft Sculpt Touch bezvadu pele un nolēma to nopirkt. Pēc kāda laika izmantošanas es nolēmu dalīties savā pieredzē ar to. Šo b...
AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...