魔術方法 python python所有的魔術方法

2021-10-20 03:46:29 字數 2917 閱讀 2601

據說,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.__hash__(self) 雜湊(hash)函式值

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

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

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

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

middles函式python python 函式

1.特性 1.1.可擴充套件性 1.2.減少 重複 1.3.程式更容易維護 2.函式的引數與區域性變數 2.1.函式裡面的 arges 元組形式儲存,kwarges 字典方式儲存,可以寫成其他,但是 必須寫 2.2.函式裡面入參可以是預設引數,固定引數,位置引數,關鍵字引數,非固定引數的 3.返回值...

discard函式python Python 集合

python 集合讀書之法,在循序而漸進,熟讀而精思。朱熹 集合的概念無序 不能重複 集合中各元素間是無序的,相同元素在集合中唯一存在.即集合是無序組合,它沒有索引和位置的概念,但可變集合中的元素是可以動態新增或者刪除的 集合的型別可變集合 set 不可變集合 frozenset set 函式 可以...

with 魔術方法

with open demo1.py as fp print fp.read enter self exit enter 魔術方法 使用with語句的時候,會呼叫這個魔術方法 這個方法的返回值可以作為as x的值 exit self,exc type,exc val,exc tb 魔術方法 1.執行...