在python中我們可以使用__get__item__、__len__等方法去建立類似於序列和對映的類。這種方法的好處是可以像列表一樣使用索引功能訪問元素。
魔術方法的作用:
__getitem__(self,key):返回鍵對應的值。
__setitem__(self,key,value):設定給定鍵的值
__delitem__(self,key):刪除給定鍵對應的元素。
__len__():返回元素的數量
【注釋】只要實現了__getitem__和 __len__方法,就會被認為是序列。
# coding=utf-8
class
getitemtest
(object):
def__init__
(self, data:
list):
self.data = data
def__getitem__
(self, item)
:return self.data[item]
def__len__
(self)
:return
len(self.data)
data =
list
(range(10
))git = getitemtest(data)
print
(f"length = len(git)"
)
輸出:
length = 10
data =
list
(range(10
))git = getitemtest(data)
print
(f"slice data = "
)
輸出:
slice data =
[2, 3, 4]
data =
list
(range(10
))git = getitemtest(data)
for v in git:
print
(v, end=
',')
else
:print
('\b'
)
注意點:
__len__並不是for…in方法的索引次數,真正停止的資訊是indexerror或者stopiteration異常,如果類裡面的列表不會自動觸發該異常,需要手動觸發。
Python魔法方法 基本的魔法方法
new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...
python 魔法方法
魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...
python魔法方法
python魔術方法是特殊方法的暱稱。它是簡單而又強大,為了被python直譯器呼叫而存在的方法。python提供豐富的元物件協議,讓語言的使用者和核心開發者擁有並使用同樣的工具 例子引用 流暢的python 一摞python風格的紙牌 import collections namedtuple用來...