定制类的特殊方法
特殊方法 描述
基本定制型
C.__init__(self[, arg1, ...]) 構造器(帶一些可選的參數)
C.__new__(self[, arg1, ...])a 構造器(帶一些可選的參數);通常用在設置不變數據類型的子類。
C.__del__(self) 解構器
C.__str__(self) 可打印的字符輸出;內建str()及print 語句
C.__repr__(self) 運行時的字符串輸出;內建repr() 和‘‘ 操作符
C.__unicode__(self)b Unicode 字符串輸出;內建unicode()
C.__call__(self, *args) 表示可調用的實例
C.__nonzero__(self) 為object 定義False 值;內建bool() (從2.2 版開始)
C.__len__(self) “長度”(可用于類);內建len()
?
特殊方法 描述
對象(值)比較c
C.__cmp__(self, obj) 對象比較;內建cmp()
C.__lt__(self, obj) and 小于/小于或等于;對應<及<=操作符
C.__gt__(self, obj) and 大于/大于或等于;對應>及>=操作符
C.__eq__(self, obj) and 等于/不等于;對應==,!=及<>操作符屬性
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()數值類型:基本表示法(String)
C.__oct__(self) 八進制表示;內建oct()
C.__hex__(self) 十六進制表示;內建hex()數值類型:數值壓縮
C.__coerce__(self, num) 壓縮成同樣的數值類型;內建coerce()
C.__index__(self)g 在有必要時,壓縮可選的數值類型為整型(比如:用于切片索引等等)
?
表13.4 定制類的特殊方法(續)
序列類型
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) 給定鍵如果不存在字典中,則提供一個默認值
轉載于:https://www.cnblogs.com/zhu327/archive/2012/12/27/2835999.html
總結
- 上一篇: 手机浏览器页面知识收集
- 下一篇: HDU2604 Queuing