讀書筆記:
重打**:
class
countlist
(list):
def__init__
(self,*args):
super.__init__(args)
self().count =
for i in args:
def__len__
(self):
return len(self.count)
def__getitem__
(self,key):
self.count[key] += 1
return super().__getitem__(key)
def__setitem__
(self,key,value):
self.count[key] += 1
super().__setitem__(key,value)
def__delitem__
(self,key):
del self.count[key]
super().__delitem__(key)
defcounter
(self,key):
return self.count[key]
def(self,value):
defpop(self,key = -1):
del self.count[key]
return super().pop(key)
defremove
(self,value):
key = super().index(value)#先求出索引
del self.count[key]
super().remove(value)
definsert
(self,key,value):
self.count.insert(key,0) #計數為0
super().insert(key,value)
defclear
(): self.count.clear()
super().clear()
defreverse
(self):
self.count.reverse()
super().reverse()
>>> list1 = countlist(1,2,3)
>>> list1
[1, 2, 3]
>>> list1.count
[0, 0, 0]
>>> list1[0]
1>>> list1.count
[1, 0, 0]
>>> list1.counter(0)
1>>> list1
[1, 2, 3, 4]
>>> list1.remove(1)
>>> list1.pop(0)
2>>> list1
[3, 4]
>>> list1.extend([8,8])
>>> list1
[3, 4, 8, 8]
>>> list1.count(3)
traceback (most recent call last):
file "", line 1, in
list1.count(3)
typeerror: 'list' object is
not callable
>>> list1.count(1)
traceback (most recent call last):
file "", line 1, in
list1.count(1)
typeerror: 'list' object is
not callable
Python3 魔法方法 定製序列
分別是 列表 元組 字串 python中的協議更像是一種指南,例如鴨子型別,乙隻鳥像鴨子一樣走,像鴨子一樣叫,像鴨子一樣遊然後這只鳥就可以叫做鴨子 如果希望定製的容器是不可變的,那麼只需要定義 len 和 getitem 方法 如果希望定製的容器是可變的,那麼還需要定義 setitem 和 deli...
python 魔法方法 定製序列 迭代器
容器型別的協議 如果說你希望定製的容器是不可變的話,你只需要定義 len 和 getitem 方法。如元組 字串 如果你希望定製的容器是可變的話,除了 len 和 getitem 方法,你還需要定義 setitem 和 delitem 兩個方法。容器型別的魔法方法如下 編寫乙個不可改變的自定義列表,...
第047講 魔法方法 定製序列
常言道 無規矩不成方圓 講的是萬事萬物的發展都要在一定的規則下去執行,只有遵循一定的協議去做,事情才能夠按照正確的道路去發展。我們今天要談的是 定製容器,想要成功的實現容器的定製,我們要先談一談協議,那麼什麼是協議呢?協議 protlcols 與其他程式語言中的介面很相似,它規定你在哪些地方必須定義...