Python 類特殊方法之 getitem

2021-09-12 13:17:52 字數 1012 閱讀 9238

凡是在類中定義了這個__getitem__ 方法,那麼它的例項物件(假定為p),可以像這樣

p[key] 取值,當例項物件做p[key] 運算時,會呼叫類中的方法__getitem__。

一般如果想使用索引訪問元素時,就可以在類中定義這個方法(__getitem__(self, key) )。

先用乙個誇張一點的例子來說明這個問題。

class

database:

def__init__(self,id,address): #

初始化方法

self

.id=id

self

.address=address

self

.d=

def__getitem__(self,key):

return

self

.d.get(key,

"default")

data=database(1,

"192.168.1.1")

print(data[

'hi'])

print(data[data.id])

print(data[data.address])

當例項物件通過 運算子取值時,會呼叫它的方法__getitem__,從上面**中輸出二個笑臉可以看出來。一般這樣用

還可以用在物件的迭代上

class

stgetitem:

def__init__(self,text):

self

.text=text

def__getitem__(self,index):

result=

self

.text[index].upper()

return

result

p=stgetitem(

"你是誰")

print(p[0])

forchar

inp:

print(char,end=

' ')

PYTHON類的特殊方法

例項1 python view plain copy coding utf 8 class firstdemo object 這裡是乙個doc a 10 類屬性 def demo self 第乙個方法 pass def demo2 self 第二個方法 pass print firstdemo.di...

Python類的特殊方法

doc描述類的資訊 class foo object 單引號和雙引號都可以 這裡描述類的資訊 def func self passprint foo.doc 這裡描述類的資訊 call物件後面加括號,觸發執行 class foo object defcall self,args,kwargs pri...

Python類的特殊方法

特殊方法,也稱為魔術方法 特殊方法都是使用 開頭和結尾的 特殊方法一般不需要我們手動呼叫,需要在一些特殊情況下自動執行 定義乙個person類 class person object 人類 def init self,name age self.name name self.age age str ...