魔法方法 getitem ()和 len

2021-10-07 02:19:04 字數 1369 閱讀 4656

1.魔法函式簡介:

在python中,如果想實現建立類似於序列和對映的類(可以迭代以及通過[下標]返回元素),可以通過重寫魔法方法的方式去實現。常見的魔法方法包括__getitem__()、__setitem__()、__delitem__()、__len__(),它們的函式功能為:

1)__getitem__(self,key):返回鍵對應的值;

2)__len__():返回元素的數量;

3)__delitem__(self,key):刪除給定鍵對應的元素;

4)__setitem__(self,key,value):設定給定鍵的值。

其中只要實現了__getitem____len__方法就會被認為是序列。

__len__()函式可以用來檢視物件長度;

__getitem__(self,key)函式可以對物件進行操作如切片、索引、iterd等,如果在類中定義了__getitem__()方法,那麼它的例項物件(假設為p)就可以以p[key]形式取值,當例項物件做p[key]運算時,就會呼叫類中的__getitem__()方法。當對類的屬性進行下標的操作時,首先會被__getitem__()、__setitem__()、__delitem__()攔截,從而執行我們在方法中設定的操作,如賦值,修改內容,刪除內容等。

2.dataset類中的__getitem____len__方法:

torch.utils.data.dataset是pytorch中用來表示資料集的抽象類,dataset是乙個包裝類,用來將資料報裝為dataset類,然後傳入dataloader中從而使dataloader類更加快捷的對資料進行操作。當處理自定義的資料集的時候必須繼承dataset,然後重寫__len__()和__getitem__()函式。

1)__len__(): 使得len(dataset)返回資料集的大小;

2)__getitem__():使得支援dataset[i]能夠返回第i個資料樣本這樣的下標操作,在__getitem__()函式中完成的讀取工作可以減小記憶體開銷,只要在需要用到的時候才將讀入。

1) 2)

3)

python魔法方法 get item

在python中我們可以使用 get item len 等方法去建立類似於序列和對映的類。這種方法的好處是可以像列表一樣使用索引功能訪問元素。魔術方法的作用 getitem self,key 返回鍵對應的值。setitem self,key,value 設定給定鍵的值 delitem self,ke...

python 魔法方法 getitem

在字典和列表中我們經常使用來獲取字典中的值或者列表中的元素,是因為字典和列表都內建了 getitem方法。getitem in dir list true getitem in dir dict true 我們自定義乙個類,當例項物件通過運算子取值時,會自動呼叫它的 getitem 方法 class...

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

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