Python-da operatorun həddindən artıq yüklənməsi

giriş

Operatorlar riyazi ifadələri yerinə yetirən xüsusi simvollardır. Operatorlara geniş mənanın verilməsi operatorun həddən artıq yüklənməsi adlanır. Eyni daxili operatorlar və ya funksiyalar müxtəlif ssenarilər altında fərqli davranışlar göstərir.

Operatorun həddindən artıq yüklənməsinə necə nail olmaq olar?

Python proqramlaşdırmasında həmin operatorla əlaqəli olduqda avtomatik olaraq işə salınan xüsusi funksiyalar dəsti var. Bu xüsusi funksiyalar operator tərəfindən yerinə yetiriləcək əməliyyatların icrasını ehtiva edir. Məsələn, biz əlavə operatorundan istifadə etdikdə _add_ funksiyası avtomatik olaraq işə salınır. _add_ funksiyası + operatorunun icrasını ehtiva edir. Buna görə də, xüsusi funksiyaların kodunu dəyişdirməklə operatorun funksional imkanlarını genişləndirmək olar.

Operatorun həddindən artıq yüklənməsi üçün xüsusi funksiyalar

İkili operator

OperatorlarPython üsulları
+_əlavə_(özünü, başqasını)
-_alt_(öz, başqa)
*_mul_(öz, başqa)
/_truediv_(öz, başqa)
//_floordiv_(özünü, başqasını)
%_mod_(öz, başqa)
**_pow_(öz, başqa)
>> _rshift_(öz, başqa)
<< _lshift_(öz, başqa)
&_və_(öz, başqa)
|_və ya_(öz, başqa)
^_xor_(öz, başqa)

Müqayisə Operatorları

OperatorlarPython üsulları
_LT_(öz, başqa)
_GT_(öz, başqa)
<=_LE_(öz, başqa)
>=_GE_(öz, başqa)
==_EQ_(öz, başqa)
!=_NE_(öz, başqa)

Təyinat Operatorları

OperatorlarPython üsulları
+=_IADD_(öz, başqa)
-=_ISUB_(öz, başqa)
*=_IMUL_(öz, başqa)
/=_IDIV_(öz, başqa)
// =_IFLOORDIV_(öz, başqa)
%=_IMOD_(öz, başqa)
**=_IPOW_(öz, başqa)
>> =_IRSHIFT_(öz, başqa)
<< =_ILSHIFT_(öz, başqa)
&=_IAND_(öz, başqa)
|=_IOR_(öz, başqa)
^=_IXOR_(öz, başqa)

Unary Operator

OperatorlarPython üsulları
+_NEG_(öz, başqa)
-_POS_(öz, başqa)
~_INVERT_(özünü, başqasını)

Proqram

Misal 1:

sinif nümayişi: def __init__(self, x, y): self.x = x def __add__(self, other): return self.x + other.x + self.y +other.y num1 = 1 num2 = 5 print( ədəd1+sayı2)

Buraxılış

6

Misal 2:

sinif nümayişi: def __init__(self, x, y): self.x = x def __add__(self, other): return self.x + other.x str1 = "Operator" str2 = "Həddindən artıq yükləmə" çapı(str1+str2)

Çıxış:

Operator Həddindən artıq yükləmə

Misal 3:

class OperatorOverloading: def __init__(self, obj): self.obj = obj def __lt__(self, other): if(self.obj > other.obj): return "A az B" başqa: qaytar "B azdır A-dan" def __eq__(self, other): if(self.obj == other.obj): return "A == B" else: return "A != B" A = Operator Overloading(3) B = Operator Overloading(3) ) çap(A == B) A = Operator Həddindən artıq yükləmə(5) B = Operator Həddindən artıq yükləmə(6) çap(A > B)

Çıxış:

A == B

A B-dən azdır

Şərh yaz

Bu sayt spam azaldılması üçün Akismet istifadə edir. Yorumunuzun necə işləndiyini öyrənin.