在python中__getitem__(self,key)方法被称为魔法方法,这个方法返回所给键对应的值。当对象是序列时,键是整数。当对象是映射时(字典),键是任意值。
使用场景:在定义类时,如果希望能按照键取类的值,则需要定义__getitem__方法
目的:如果给类定义了__getitem__方法,则当按照键取值时,可以直接返回__getitem__方法执行的结果。
class Fib(): #定义类Fib
def __init__(self,start=0,step=1):
self.step=step
def __getitem__(self, key): #定性__getitem__函数,key为类Fib的键
a = key+self.step
return a #当按照键取值时,返回的值为a
s=Fib()
s[1] #返回2 ,因为类有 __getitem__方法,所以可以直接通过键来取对应的值
如果不给类Fib()定义 __getitem__方法,则会无法通过键来获取对应的值
class Fib(): #定义类Fib
def __init__(self,start=0,step=1):
self.step=step
s=Fib()
s[1]
返回:TypeError: 'Fib' object does not support indexing
这种方法可以让使用者非常方便的取值,我们经常使用列表和字典,都有该方法。
原创不易,如果对你有帮助,动动小手点个赞!