python中的魔法方法

2021-06-27 15:04:54 字數 529 閱讀 9096

python中以__包圍的都有特殊的意思,其中是方法的都是魔法方法。

python中的魔法方法魔法的地方就是你不需要顯示的呼叫,就可以實現自動呼叫。

比如,__init__() 方法,你建立乙個物件的時候,你不需要呼叫這個方法,它就會自動呼叫這個方法了。豈不是很魔法 ?

另外,python中還有其他的魔法方法。

比如講,關於序列的規則。當你自己建立乙個序列的時候,當然像列表,字典等他們也都是序列,我這裡講的也是序列,但是跟內建的這個列表等序列不一樣。

當你自己模擬乙個序列,(可以參考python基礎教程p144頁的例子)。

既然是序列,那麼序列的一些規則你要用方法實現。比如講,訪問乙個元素等規則。當你定義了這個序列的型別的時候,該型別的物件這樣x[y]時候,就會自動呼叫類裡面定義的__getitem__() 方法。

除了這個以外,序列還有下面幾種魔法方法:__len__()  , __setitem__()  ,  __delitem__()  等魔法方法。

可以參考python基礎教程p143頁,9.3節「成員訪問」

Python魔法方法 基本的魔法方法

new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...

Python中的魔法方法

當使用print輸出物件的時候,只要自己定義了 str self 方法,那麼就會列印從這個方法中return的資料。舉個例子 class cat 定義了乙個cat類 初始化物件 def init self,new name,new age self.name new name self.age ne...

python的魔法 Python 魔法方法

先給個例子 class frenchdeck ranks str n for n in range 2,11 list jqka suits spades diamonds clubs hearts split def init self self.cards card rank,suit for ...