Python 部分魔法方法

__new__(cls[, ...]) 1. __new__ 是在一個對象實例化的時候所調用的第一個方法
2. 它的第一個參數是這個類,其他的參數是用來直接傳遞給 __init__ 方法
3. __new__ 決定是否要使用該 __init__ 方法,因爲 __new__ 可以調用其他類的構造方法或者直接返回別的實例對象來作爲本類的實例,如果 __new__ 沒有返回實例對象,則 __init__ 不會被調用
4. __new__ 主要是用於繼承一個不可變的類型比如一個 tuple 或者 string
__init__(self[, ...]) 構造器,當一個實例被創建的時候調用的初始化方法
__del__(self) 析構器,當一個實例被銷燬的時候調用的方法
__getattr__(self, name) 定義當用戶試圖獲取一個不存在的屬性時的行爲
__getattribute__(self, name) 定義當該類的屬性被訪問時的行爲
__setattr__(self, name, value) 定義當一個屬性被設置時的行爲
__delattr__(self, name) 定義當一個屬性被刪除時的行爲
__add__(self, other) 定義加法的行爲:+
__sub__(self, other) 定義減法的行爲:-
__mul__(self, other) 定義乘法的行爲:*
__truediv__(self, other) 定義真除法的行爲:/
__floordiv__(self, other) 定義整數除法的行爲://
__mod__(self, other) 定義取模算法的行爲:%
__pow__(self, other[, modulo]) 定義當被 power() 調用或 ** 運算時的行爲
__lshift__(self, other) 定義按位左移位的行爲:<<
__rshift__(self, other) 定義按位右移位的行爲:>>
__and__(self, other) 定義按位與操作的行爲:&
__xor__(self, other) 定義按位異或操作的行爲:^
__or__(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) 定義賦值按位或操作的行爲:|=
__complex__(self) 定義當被 complex() 調用時的行爲(需要返回恰當的值)
__int__(self) 定義當被 int() 調用時的行爲(需要返回恰當的值)
__float__(self) 定義當被 float() 調用時的行爲(需要返回恰當的值)

參考:https://fishc.com.cn/forum.php?mod=viewthread&tid=48793&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章