python全部的魔術方法

聽說,Python 的對象天生擁有一些神奇的方法,它們總被雙下劃線所包圍,他們是面向對象的 Python 的一切。

他們是能夠給你的類增長魔力的特殊方法,若是你的對象實現(重載)了這些方法中的某一個,那麼這個方法就會在特殊的狀況下被 Python 所調用,你能夠定義本身想要的行爲,而這一切都是自動發生的。

Python 的魔術方法很是強大,然而隨之而來的則是責任。瞭解正確的方法去使用很是重要!

C.__init__(self[, arg1, ...]) 構造器(帶一些可選的參數) C.__new__(self[, arg1, ...]) 構造器(帶一些可選的參數)一般用在設置不變數據類型的子類。 C.__del__(self) 析構器 C.__str__(self) 可打印的字符輸出;內建str()及print 語句 C.__repr__(self) 運行時的字符串輸出 內建repr() 和‘‘ 操做符 C.__unicode__(self) Unicode 字符串輸出;內建unicode() C.__call__(self, *args) 表示可調用的實例 C.__nonzero__(self) 爲object 定義False 值 內建bool() (從2.2 版開始) C.__len__(self) 「長度」(可用於類) 內建len() C.__cmp__(self, obj) 對象比較;內建cmp() C.__lt__(self, obj) 小於/小於或等於 對應<及<=操做符 C.__gt__(self, obj) 大於/大於或等於 對應>及>=操做符 C.__eq__(self, obj) 等於/不等於 對應==,!=及<>操做符 C.__getattr__(self, attr) 獲取屬性 內建getattr() 僅當屬性沒有找到時調用 C.__setattr__(self, attr, val) 設置屬性 C.__delattr__(self, attr) 刪除屬性 C.__getattribute__(self, attr) a 獲取屬性;內建getattr() 老是被調用 C.__get__(self, attr) a (描述符)獲取屬性 C.__set__(self, attr, val) a (描述符)設置屬性 C.__delete__(self, attr) a (描述符)刪除屬性 C.__*add__(self, obj) 加;+操做符 C.__*sub__(self, obj) 減;-操做符 C.__*mul__(self, obj) 乘;*操做符 C.__*div__(self, obj) 除;/操做符 C.__*truediv__(self, obj) e True 除;/操做符 C.__*floordiv__(self, obj) e Floor 除;//操做符 C.__*mod__(self, obj) 取模/取餘;%操做符 C.__*divmod__(self, obj) 除和取模;內建divmod() C.__*pow__(self, obj[, mod]) 乘冪;內建pow();**操做符 C.__*lshift__(self, obj) 左移位;<<操做符 C.__*rshift__(self, obj) 右移;>>操做符 C.__*and__(self, obj) 按位與;&操做符 C.__*or__(self, obj) 按位或;|操做符 C.__*xor__(self, obj) 按位與或;^操做符 C.__neg__(self) 一元負 C.__pos__(self) 一元正 C.__abs__(self) 絕對值;內建abs() C.__invert__(self) 按位求反;~操做符 C.__complex__(self, com) 轉爲complex(複數);內建complex() C.__int__(self) 轉爲int;內建int() C.__long__(self) 轉爲long;內建long() C.__float__(self) 轉爲float;內建float() C.__oct__(self) 八進制表示;內建oct() C.__hex__(self) 十六進制表示;內建hex() C.__coerce__(self, num) 壓縮成一樣的數值類型;內建coerce() C.__index__(self)g 在有必要時,壓縮可選的數值類型爲整型(好比:用於切片 C.__len__(self) 序列中項的數目 C.__getitem__(self, ind) 獲得單個序列元素 C.__setitem__(self, ind,val) 設置單個序列元素 C.__delitem__(self, ind) 刪除單個序列元素 C.__getslice__(self, ind1,ind2) 獲得序列片段 C.__setslice__(self, i1, i2,val) 設置序列片段 C.__delslice__(self, ind1,ind2) 刪除序列片段 C.__contains__(self, val) f 測試序列成員;內建in 關鍵字 C.__*add__(self,obj) 串連;+操做符 C.__*mul__(self,obj) 重複;*操做符 C.__iter__(self) e 建立迭代類;內建iter() C.__len__(self) mapping 中的項的數目 C.__hash__(self) 散列(hash)函數值 C.__getitem__(self,key) 獲得給定鍵(key)的值 C.__setitem__(self,key,val) 設置給定鍵(key)的值 C.__delitem__(self,key) 刪除給定鍵(key)的值 C.__missing__(self,key) 給定鍵若是不存在字典中,則提供一個默認值

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息