python的容器定製

2021-10-04 12:03:50 字數 1105 閱讀 9677

python的容器型別有:

序列型別(list, tuple, str), 對映型別(dict)都是屬於容器型別,裡面存放的是各種各樣的物件

容器型別的協議:

1.定製不可變容器型別: 例如tuple和str

需要定義__len__()和__getitem__()兩個魔法方法

2.定製可變容器型別:例如:list. dict, set

除了__len__()和__getitem__()兩個魔法方法之外,還需要定義__setitem__()和__delitem__()兩個魔法方法

len(self): 被len()呼叫時返回容器中元素的個數

getitem(self, key):獲取容器中指定元素的行為,相當於self[key], 就像列表的操作_list[1]

setitem(self, key): **設定 **容器中指定元素的行為,相當於self[key] = value

delitem(self, key): **刪除 **容器中指定元素的行為,相當於del self[key]

此外實現了__getitem__()方法的class可以像迭代器一樣去迭代,等同於實現了__iter__()和__next__()方法

class

countlist

:def

__init__

(self,

*args)

: self.values =

[x for x in args]

def__len__

(self)

:return

len(self.values)

def__getitem__

(self, key)

:return self.values[key]

c1 = countlist(1,

3,5,

7,9)

for i in c1:

print

(i)135

79

Python入門 定製容器

以下內容來自於網課學習筆記。使用的環境 編寫乙個不可改變的自定義列表,要求記錄列表中的每乙個元素被訪問的次數。思路 定義乙個類,此類的例項物件只能具有訪問列表元素的功能。每取出乙個列表元素,該列表元素的訪問此時 1 使用字典實現。class countlist def init self,args ...

python定製 python中定製類

1 python中 str 和repr 如果要把乙個類的例項變成 str,就需要實現特殊方法 str classperson object def init self,name,gender self.name name self.gender genderdef str self return p...

python定製訂單 觸發定製的Python業務

您可能知道,我們可以採用python指令碼語言來提供業務。這種方式可以非常靈活地滿足許多客戶各種各樣的需求。但是某些東西就不那麼靈活,例如業務的觸發方式。以前的mss版本在卡號業務中,固定了業務觸發方式。也就是說,只有被叫號碼是 300 的呼叫才會觸發卡號業務。有些客戶就是不喜歡這個號碼,還有些客戶...