在 python 中编写类的时候, 会用到很多方法, 比如 __init__() 用来对class 进行初始化, __call__() 用来通过( ) 的方法调用 __call__方法, 这次讲解的是 __getitem__()函数
1 __getitem__() 介绍
在python中__getitem__(self,key) 方法被称为魔法方法,这个方法返回所给键对应的值。当对象是序列时,键是整数。当对象是映射时 (字典),键是任意值
在定义类时,如果希望能按照键取类的值,则需要定义__getitem__方法
如果给类定义了__getitem__方法,则当按照键取值时,可以直接返回__getitem__方法执行的结果
2 示例
class test():
def __init__(self):
self.a = 100
# 定义 __getitem__(), key 为 test 的键
def __getitem__(self, key):
b = self.a + key
return b
t = test()
t[100]
>>> 200
对比
class test():
def __init__(self):
self.a = 100
# 不定义 __getitem__() 函数
def getitem(self, key):
b = self.a + key
return b
t = test()
t[100]
>>> 'test' object is not subscriptable