python中的特殊方法的含義

2021-08-27 22:21:26 字數 4209 閱讀 2909

表 13.4 用來定製類的特殊方法

基本定製型                                              描述

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) 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)         獲取屬性;內建 getattr();總是被呼叫

c.__get__(self, attr)                      (描述符)獲取屬性

c.__set__(self, attr, val)                (描述符)設定屬性

c.__delete__(self, attr)                 (描述符)刪除屬性

定製類/模擬型別

數值型別:二進位制操作符

c.__*add__(self, obj)                    加;+操作符

c.__*sub__(self, obj)                    減;-操作符

c.__*mul__(self, obj)                    乘;*操作符

c.__*div__(self, obj)                     除;/操作符

c.__*truediv__(self, obj)               true 除;/操作符

c.__*floordiv__(self, obj)              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)                      在有必要時,壓縮可選的數值型別為整型(比如:用於切片索引等等)

序列型別

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)          測試序列成員;內建 in 關鍵字

c.__*add__(self,obj)                串連;+操作符

c.__*mul__(self,obj)                重複;*操作符

c.__iter__(self)                        建立迭代類;內建 iter()

對映型別

c.__hash__(self)                      雜湊(hash)函式值

c.__getitem__(self,key)           得到給定鍵(key)的值

c.__setitem__(self,key,val)     設定給定鍵(key)的值

c.__delitem__(self,key)           刪除給定鍵(key)的值

c.__missing__(self,key)          給定鍵如果不存在字典中,則提供乙個預設值

JAVA中的特殊註解的含義

特殊注釋 1 todo 表示需要實現,但目前還未實現的功能 2 勉強可以工作,但是效能差等原因 3 fixme 是錯誤的,不能工作,需要修復 todo 說明 如果 中有該標識,說明在標識處有功能 待編寫,待實現的功能在說明中會簡略說明。fixme 說明 如果 中有該標識,說明標識處 需要修正,甚至 ...

python類中的特殊方法

python類特殊方法 方法功能說明 new 類的靜態方法,用於確定是否建立物件 init 建構函式,生成物件時呼叫 del 析構函式,釋放物件時呼叫 add sub mul truediv floordiv mod pow repr 列印,轉換 setitem 按照索引賦值 getitem 按照索...

python中的特殊方法 getitem

python中的特殊方法 getitem 原創solarzhou 最後發布於2019 07 19 14 08 37 閱讀數 1240 收藏 展開特殊方法 getitem python的特殊方法 getitem 主要作用是可以讓物件實現迭代功能。我們通過乙個例項來說明。定義乙個sentence類,通過...