Python 魔法方法詳細彙總

2021-10-25 10:28:03 字數 4211 閱讀 1556

*有關屬性*

*比較操作符*

*算數運算子*

*反運算*

*一元操作符*

*型別轉換*

*上下文管理(with 語句)*

*容器型別*

1.__new__ 是在乙個物件例項化的時候所呼叫的第乙個方法

2.它的第乙個引數是這個類,其他的引數是用來直接傳遞給 __init__ 方法

3.__new__ 決定是否要使用該 __init__ 方法,因為 __new__ 可以呼叫其他類的構造方法或者直接返回別的例項物件來作為本類的例項,如果 __new__ 沒有返回例項物件,則 __init__ 不會被呼叫

4.__new__ 主要是用於繼承乙個不可變的型別比如乙個 tuple 或者 string

構造器,當乙個例項被建立的時候呼叫的初始化方法
析構器,當乙個例項被銷毀的時候呼叫的方法
允許乙個類的例項像函式一樣被呼叫:x(a, b) 呼叫 x.__call__(a, b)
定義當被 len() 呼叫時的行為
· 定義當被 repr() 呼叫時的行為

定義當被 str() 呼叫時的行為
定義當被 bytes() 呼叫時的行為
定義當被 hash() 呼叫時的行為
定義當被 bool() 呼叫時的行為,應該返回 true 或 false
定義當被 format() 呼叫時的行為
定義當使用者試圖獲取乙個不存在的屬性時的行為
定義當該類的屬性被訪問時的行為
定義當乙個屬性被設定時的行為
定義當乙個屬性被刪除時的行為
定義當 dir() 被呼叫時的行為
定義當描述符的值被取得時的行為
定義當描述符的值被改變時的行為
定義當描述符的值被刪除時的行為
定義小於號的行為:x < y 呼叫 x.__lt__(y)
定義小於等於號的行為:x <= y 呼叫 x.\_\_le\_\_(y)
定義等於號的行為:x == y 呼叫 x.\_\_eq\_\_(y)
定義不等號的行為:x != y 呼叫 x.\_\_ne\_\_(y)
定義大於號的行為:x > y 呼叫 x.\_\_gt\_\_(y)
定義大於等於號的行為:x >= y 呼叫 x.\_\_ge\_\_(y)
定義加法的行為:+
定義減法的行為:-
定義乘法的行為:*
定義真除法的行為:/
定義整數除法的行為://
定義取模演算法的行為:%
定義當被 divmod() 呼叫時的行為
定義當被 power() 呼叫或 ** 運算時的行為
定義按位左移位的行為:<<
定義按位右移位的行為:>>
定義按位與操作的行為:&
定義按位異或操作的行為:^
定義按位或操作的行為:|
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)

(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)
(與上方相同,當左運算元不支援相應的操作時被呼叫)

增量賦值運算

定義賦值加法的行為:+=
定義賦值減法的行為:-=
定義賦值乘法的行為:*=
定義賦值真除法的行為:/=
定義賦值整數除法的行為://=
定義賦值取模演算法的行為:%=
定義賦值冪運算的行為:**=
定義賦值按位左移位的行為:<<=
定義賦值按位右移位的行為:>>=
定義賦值按位與操作的行為:&=
定義賦值按位異或操作的行為:^=
定義賦值按位或操作的行為:|=
定義正號的行為:+x
定義負號的行為:-x
定義當被 abs() 呼叫時的行為
定義按位求反的行為:~x
定義當被 complex() 呼叫時的行為(需要返回恰當的值)
定義當被 int() 呼叫時的行為(需要返回恰當的值)
定義當被 float()呼叫時的行為(需要返回恰當的值)
定義當被 round() 呼叫時的行為(需要返回恰當的值)
1. 當物件是被應用在切片表示式中時,實現整形強制轉換

2.如果你定義了乙個可能在切片時用到的定製的數值型,你應該定義\_\_index\_\_

3.如果 \_\_index\_\_ 被定義,則 \_\_int\_\_ 也需要被定義,且返回相同的值

1. 定義當使用 with 語句時的初始化行為

2.\_\_enter\_\_ 的返回值被 with 語句的目標或者 as 後的名字繫結

1. 定義當乙個**塊被執行或者終止後上下文管理器應該做什麼

2.一般被用來處理異常,清除工作或者做一些**塊執行完畢之後的日常工作

定義當被 len() 呼叫時的行為(返回容器中元素的個數)
定義獲取容器中指定元素的行為,相當於 self[key]
定義設定容器中指定元素的行為,相當於 self[key] = value
定義刪除容器中指定元素的行為,相當於 del self[key]
定義當迭代容器中的元素的行為
定義當被 reversed() 呼叫時的行為
定義當使用成員測試運算子(in 或 not in)時的行為
參考文章[

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用來...