python複習43 44魔法方法 反運算

2021-10-19 11:19:19 字數 3070 閱讀 9631

增量賦值運算的相關魔法方法方法

作用iadd(self,other)

定義賦值加法的行為

isub(self,other)

定義賦值減法的行為

imul(self,other)

定義賦值乘法的行為

itruediv(self,other)

定義賦值真除法的行為

ifloordiv(self,other)

定義賦值整數除法的行為

imod(self,other)

定義賦值取模演算法的行為

idivmod(self,other)

定義賦值取餘演算法的行為(a\\b餘數)

ipow(self,other)

定義當賦值冪運算**運算時的行為

ilshift(self,other)

定義賦值按位左移位的行為

irshift(self,other)

定義賦值按位右移位的行為

iand(other)

定義賦值按位與操作的行為&

ixor(self,other)

定義賦值按位異或操作的行為:^

ior(self,other)

定義賦值按位或操作的行為

反運算的相關魔法方法方法

作用radd(self,other)

定義加法的行為(當左運算元不支援相應的操作是被呼叫)

rsub(self,other)

定義減法的行為(當左運算元不支援相應的操作是被呼叫)

rmul(self,other)

定義乘法的行為(當左運算元不支援相應的操作是被呼叫)

rtruediv(self,other)

定義真除法的行為(當左運算元不支援相應的操作是被呼叫)

rfloordiv(self,other)

定義整數除法的行為(當左運算元不支援相應的操作是被呼叫)

rmod(self,other)

定義取模演算法的行為(當左運算元不支援相應的操作是被呼叫)

rdivmod(self,other)

定義當divmod()呼叫時的行為(a\\b餘數)(當左運算元不支援相應的操作是被呼叫)

rpow(self,other)

定義當被power()呼叫或**運算時的行為(當左運算元不支援相應的操作是被呼叫)

rlshift(self,other)

定義按位左移位的行為(當左運算元不支援相應的操作是被呼叫)

rrshift(self,other)

定義按位右移位的行為(當左運算元不支援相應的操作是被呼叫)

rand(other)

定義按位與操作的行為&(當左運算元不支援相應的操作是被呼叫)

rxor(self,other)

定義按位異或操作的行為:^(當左運算元不支援相應的操作是被呼叫)

ror(self,other)

定義按位或操作的行為(當左運算元不支援相應的操作是被呼叫)

下面通過幾個例子來熟悉一下python的這些魔法方法:

>>

>

classa(

int)

:def

__radd__

(self,other)

:print

('__radd__被呼叫了'

)return

int.__add__(self,other)

>>

> a=a(6)

>>

> b=a(9)

>>

> a+b

15>>

>2+b

__radd__被呼叫了

11

>>

>

classa(

int)

:def

__radd__

(self,other)

:print

('__radd__被呼叫了'

)return

int.__rsub__(other,self)

#這裡self和other的位置替換了

>>

> b=a(9)

>>

>2+b

__radd__被呼叫了

7

定義乙個類,當例項化該類是,自動判斷傳入了多少個引數,並顯示出來。

>>

>

classb:

def__init__

(self,

*args)

:#這裡*表示傳遞多類引數,若不加*預設這裡只有兩個位置,而輸入的佔四個位置,從而出現錯誤,self也佔乙個位置

ifnot args:

print

('沒有傳入引數'

)else

:print

('傳入了%d個引數,分別是:'

%len

(args)

,end='')

for each in args:

print

(each,end=

'、')

>>

> b=b(2,

6,8)

傳入了3個引數,分別是:2、6、8、

Python魔法方法 基本的魔法方法

new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...

python 魔法方法

魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...

python魔法方法

python魔術方法是特殊方法的暱稱。它是簡單而又強大,為了被python直譯器呼叫而存在的方法。python提供豐富的元物件協議,讓語言的使用者和核心開發者擁有並使用同樣的工具 例子引用 流暢的python 一摞python風格的紙牌 import collections namedtuple用來...