1. 程式人生 > >python教程系列(二.2.3、運算類魔法函式)

python教程系列(二.2.3、運算類魔法函式)

在這裡插入圖片描述

運算相關魔術方法

比較運算相關魔術方法

1._ _lt_ _()

格式:
    def __lt__(self,other):
        return 資料

特徵:

    觸發時機:進行小於判斷時自動觸發
    引數:2個引數第一個是self,第二個判斷的第二個物件
    返回值:返回值可以任意型別,推薦布林值
    作用:定義小於號的行為:x < y 呼叫 x.lt(y)

2._ _le_ _()

格式:
    def __le__(self):
        return str

特徵:

    觸發時機:進行小於等於判斷時自動觸發
    引數:2個引數第一個是self,第二個判斷的第二個物件
    返回值:返回值可以任意型別,推薦布林值
    作用:定義小於等於號的行為:x <= y 呼叫 x.le(y)

3._ _gt_ _()

格式:
    def __gt__(self):
        return str

特徵:

    觸發時機:進行大於判斷時自動觸發
    引數:2個引數第一個是self,第二個判斷的第二個物件
    返回值:返回值可以任意型別,推薦布林值
    作用:定義大於號的行為:x > y 呼叫 x.gt(y)

4._ _ge_ _()

格式:
    def __ge__(self):
        return str

特徵:

    觸發時機:進行大於等於判斷時自動觸發
    引數:2個引數第一個是self,第二個判斷的第二個物件
    返回值:返回值可以任意型別,推薦布林值
    作用:定義大於等於號的行為:x >= y 呼叫 x.ge(y)

5._ _eq_ _()

格式:
    def __eq__(self):
        return str

特徵:

    觸發時機:進行等於判斷時自動觸發
    引數:2個引數第一個是self,第二個判斷的第二個物件
    返回值:返回值可以任意型別,推薦布林值
    作用:定義大於等於號的行為:x == y 呼叫 x.eq(y)

6._ _ne_ _()

格式:
    def __ne__(self):
        return str

特徵:

    觸發時機:進行不等於判斷時自動觸發
    引數:2個引數第一個是self,第二個判斷的第二個物件
    返回值:返回值可以任意型別,推薦布林值
    作用:定義不等號的行為:x != y 呼叫 x.ne(y)

算術運算相關魔術方法

__add__(self, other)     定義加法的行為:+
__sub__(self, other)    定義減法的行為:-
__mul__(self, other)     定義乘法的行為:
__truediv__(self, other)     定義真除法的行為:/
__floordiv__(self, other)    定義整數除法的行為://
__mod__(self, other)     定義取模演算法的行為:%
__divmod__(self, other)  定義當被 divmod() 呼叫時的行為
__pow__(self, other[, modulo])   定義當被 power() 呼叫或 ** 運算時的行為
__lshift__(self, other)  定義按位左移位的行為:<<
__rshift__(self, other) 定義按位右移位的行為:>>
__and__(self, other)     定義按位與操作的行為:&
__xor__(self, other)     定義按位異或操作的行為:^
__or__(self, other) 定義按位或操作的行為:|

反運算相關魔術方法

radd(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rsub(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rmul(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rtruediv(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rfloordiv(self, other)   (與上方相同,當左運算元不支援相應的操作時被呼叫)
rmod(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rdivmod(self, other)     (與上方相同,當左運算元不支援相應的操作時被呼叫)
rpow(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rlshift(self, other)     (與上方相同,當左運算元不支援相應的操作時被呼叫)
rrshift(self, other)     (與上方相同,當左運算元不支援相應的操作時被呼叫)
rand(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
rxor(self, other)    (與上方相同,當左運算元不支援相應的操作時被呼叫)
ror(self, other)     (與上方相同,當左運算元不支援相應的操作時被呼叫)

賦值運算相關魔術方法

iadd(self, other)    定義賦值加法的行為:+=
isub(self, other)    定義賦值減法的行為:-=
imul(self, other)    定義賦值乘法的行為:=
itruediv(self, other)    定義賦值真除法的行為:/=
ifloordiv(self, other)   定義賦值整數除法的行為://=
imod(self, other)    定義賦值取模演算法的行為:%=
ipow(self, other[, modulo])  定義賦值冪運算的行為:**=
ilshift(self, other)     定義賦值按位左移位的行為:<<=
irshift(self, other)     定義賦值按位右移位的行為:>>=
iand(self, other)    定義賦值按位與操作的行為:&=
ixor(self, other)    定義賦值按位異或操作的行為:^=
ior(self, other)     定義賦值按位或操作的行為:|=

一元運算相關魔術方法

pos(self)    定義正號的行為:+x
neg(self)    定義負號的行為:-x
abs(self)    定義當被 abs() 呼叫時的行為
invert(self)     定義按位求反的行為:~x

在這裡插入圖片描述