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 的呼叫才會觸發卡號業務。有些客戶就是不喜歡這個號碼,還有些客戶...