Python 魔術方法筆記

2022-02-01 01:27:34 字數 1167 閱讀 7247

魔術方法總是被__包圍, 如__init__,__len__都是常見的魔術方法,這裡主要寫一下我遇到的一些魔術方法

對某個索引值賦值時

即可以進行賦值操作,如

def __setitem__(self, k, v):

self.put(k, v)

在上述**的情況下,可以執行p['key'] = value操作,即將key賦給k,value賦給v,執行put(k, v)函式。所以,__setitem__建立的前提,是要這個函式內的操作本來具有賦值的性質。

使用索引訪問元素時

這個操作時取值操作,如

def __getitem__(self, key):

return self.get(key)

在有上述函式的情況下,可以執行z = p['key']操作,即將'key'傳入get(key)函式中,進行取值。

使用 in 操作測試關係時

當你想要你的物件可以使用in操作時,可以使用這個函式:

def __contains__(self, key):

if self._get(key, self.root):

return true

else:

return false

有了這個函式即可執行:if 'northfield' in my_zip_tree:ps:理解魔術函式最重要的就是,函式名稱對應的是乙個呼叫方法的表示,如__contain__( )。如果這個函式裡面什麼都不寫,那麼就算可以執行in操作沒有語法錯誤,那也什麼都不能返回,沒有實際意義。魔術函式重要的還是函式內部的**,且這種**等同於執行函式名稱對應的呼叫方式。

最後送一張大圖:

Python筆記2 魔術方法

str 方法 class peole def init self,name,age,pro self.name name self.age age self.pro pro print init函式初始化 pass def aihao self print 了,讀 專業 format self.na...

python 魔術方法

魔術方法 呼叫方式 解釋 new cls instance myclass arg1,arg2 new 在建立例項的時候被呼叫 init self instance myclass arg1,arg2 init 在建立例項的時候被呼叫 cmp self,other self other,self o...

Python魔術方法

參考文章 python 魔術方法指南 魔術方法,顧名思義是一種可以給物件 類 增加魔法的特殊方法,它們的表示方法一般是用雙下劃線包圍 如 init from os.path import join class fileobject 給檔案物件進行包裝從而確認在刪除時檔案流關閉 def init se...