python四個魔法方法__len__,__getitem__,__setitem__,__delitem__
python中除了可以使用內建的型別,如list,tuple,dict,還可以建立自己的物件來實現像這些內建型別的訪問,不過需要在定義類的時候對一些魔法方法逐一實現。
如下:
class DictDemo: def __init__(self,key,value): self.dict = {} self.dict[key] = value def __getitem__(self,key): return self.dict[key] def __setitem__(self,key,value): self.dict[key] = value dictDemo = DictDemo('key0','value0') print(dictDemo['key0']) #value0 dictDemo['key1'] = 'value1' print(dictDemo['key1']) #value1
上面的物件就相當於自己建立了一個內建型別相似的字典,當例項中有類似字典的操作的時候
比如:
dictDemo1 = {"key0":"value0"}
print(dictDemo1["key0"]) #value0
例項dictDemo["key0"]就類似上面的的操作,則會自動呼叫類中定義的方法__getitem__,輸出在該方法返回的值
再看看dictDemo["key1"] = "value1",就是字典的操作,會自動呼叫類中定義的方法__setitem__,來設定相應的值
還有一個__del__,就是當我們要刪除一個元素的時候呼叫(魔法方法會自動呼叫)
__len__ 如下:
當要使用內建函式len(),而引數是DictDemo的例項的時候,那一定要實現型別中的__len__()方法
class DictDemo: def __init__(self,key,value): self.dict = {} self.dict[key] = value def __getitem__(self,key): return self.dict[key] def __setitem__(self,key,value): self.dict[key] = value def __len__(self): return len(self.dict) dictDemo = DictDemo('key0','value0') print(dictDemo['key0']) #value0 dictDemo['key1'] = 'value1' print(dictDemo['key1']) #value1 print(len(dictDemo)) #2
上述就是這四個魔法方法的簡單介紹。endingPos +……+#
相關推薦
python四個魔法方法__len__,__getitem__,__setitem__,__delitem__
python中除了可以使用內建的型別,如list,tuple,dict,還可以建立自己的物件來實現像這些內建型別的訪問,不過需要在定義類的時候對一些魔法方法逐一實現。 如下: class DictDemo: def __init__(self,key,valu
Python深度學習 魔法函式__len__及__getitem__
對於魔法函式__len__來說它可以使我們對於一個類的例項使用len()方法, __getitem__方法則可以像列表一樣操作 class Person: def __init__(self
[小甲魚]入門學習python筆記 【魔法方法】
實例化 魔法 sel width 對象 重寫 pre body wid //__new__(cls[,....]) //對象實例化調用的第一個方法,它的第一個參數是這個類,而其他參數會直接傳遞給__init__()方法 //需要在基類的基礎上對其進行修改時重寫__new_
python類之魔法方法
python類之魔法方法: class A(object): def __init__(self,x): self.x = x def __neg__(self): print('-v') def __pos__(self):
ps--提升字體排版的美感四個有效方法
提升 技術分享 img 超過 註意 http 文字 mage 圖片 一,文字的擺放位置 (字體的選擇不要超過三種,分散註意力) ps--提升字體排版的美感四個有效方法
python裡的魔法方法1(構造與析構)
魔法方法——構造與析構 1、python程式設計的魔法方法: (1)魔法方法總是被雙下劃線包圍,例如__init__; (2)魔法方法是面向物件的python的一切。 2、__new__(class[,…])魔法方法 主要用來重新修改和對於實際類()裡面所帶引數的修改,__new__ 方法主要任務是
python中的魔法方法及屬性
這裡介紹一些比較常用的魔法方法: a.何為魔法屬性? 魔法屬性和魔法方法是python內建的一些屬性和方法。代表著特殊意義, 命名時會在前後加兩個下劃線,在執行特定的操作時,系統會自動呼叫 1.__doc__魔法方法:表
python 3 __str__魔法方法總結
Python3中只要類中的方法名格式為:__方法名__ 都是為特殊的方法,可以稱為"魔法"方法 當我們在程式碼中呼叫了print(類),就會呼叫__str__方法裡面的值 注意該函式必須有返回值,為字串形式 例如如下程式碼: class Cat: "
jedis set 的四個過載方法
方法定義如下: 1、String set(String key, String value) 2、String set(String key, String value, String nxxx) 3、String set(String key, String value, Str
多執行緒同步互斥的四個實現方法圖
一、引言 這篇文章記錄是來源於Windows多執行緒系列的學習筆記,表為原創,實為轉載文章,只是為了讓自己學的明白,稍微整理了下而已,在此向“MoreWindows”大神致敬! 二、關鍵段與互斥量Mutex 名稱 建立或初始化 銷燬
python中__getitem__, __setitem__, __delitem__的使用
參考: 伯樂地址 用於索引操作,如字典。以上分別表示獲取、設定、刪除資料 #Python __doc__ class C(object): """ Holy Shit What The Fu
徹底搞懂自定義控制元件中的四個構造方法
在上一篇部落格動手實現餅圖控制元件寫完以後,有些小夥伴說講得不夠細,建議從最基本開始講起,比如建構函式都是什麼?我覺得說得很有道理,正好自己也不夠了解自定義控制元件中的4個構造方法的具體呼叫時機和它們各自的引數作用,今天終於有時間把這部分內容進行學習整理,順便分享給那
Python中的魔法方法(Magical Methond)
在python中,魔法方法是一種可以給類增加魔力的特殊方法,他們被雙下橫線所包圍,他們是面向物件的python的一切。python中的魔法方法可以在類定義的時候使用,如果你的物件實現或者過載了這些方法中的某一個,那麼這個方法會在特殊的時候被python所呼叫,在這個時候,你可
從 View 的四個構造方法說起
View 類的四個建構函式 寫過自定義 View 的都知道,View 有四個建構函式,一般大家都知道第一個構造方法是簡單的在程式碼中new View 的時候呼叫的,第二個構造方法使用最廣泛,是對應的生成 xml 中定義的 View 的時候呼叫的。剩下的兩個構造方法,大家瞭解的就比較少了。一般在自定義
__getitem__\__setitem__\__delitem__
.data del ini sdf () elf val def 執行 class Foo(object): def __init__(self): self.data = {} def __getitem__(self, key):
python中的幾個高階問題詳解(__init__,裝飾器執行步驟,@staticmethod和@classmethod區別,單例模式,魔法方法,object繼承與不繼承區別)
第一個問題,init 在定義一個類時,什麼時候用__init__函式,什麼時候不用,用不用有什麼區別? 首先__init__是為了初始化用的,但是初始化的時候不一定要用這個,直接定義也是可以的,比如 class A(object): test_a = '123' 而我們用__
python列出資料夾下所有檔案的四個方法
#方法1:使用os.listdir import os for filename in os.listdir(r'c:\windows'): print filename #方法2:使用glob模組,可以設定檔案過濾 import glob for filename in glob.glob(r'
【python】python魔法方法(待填坑)
絕對值 tle init cls -m del __init__ 另一個 trunc 參考博文:http://pyzh.readthedocs.io/en/latest/python-magic-methods-guide.html 參考博文英文原版:http://www
python魔法方法詳解
返回 call __init__ and -m 描述 nbsp shift 賦值 文章來源:http://blog.csdn.net/koko66/article/details/42709279 據說,Python 的對象天生擁有一些神奇的方法,它們總被雙下劃線所包圍
成為百萬富翁的四個方法
version 如何賺錢 是你 廣告 完整 新的 快的 必須 給他 重讀《小狗錢錢》,發現一個不小的秘密。 今天文章的開頭,我想講一個美國小男孩變成百萬富翁的故事。 這個小男孩叫達瑞,在他8歲的時候,有一次偶然的機會,他向一位非常成功的商人請教如何賺錢,商人給了