python:__getitem__方法详解

getitem(self,key):

这个方法返回与指定键相关联的值。
对序列来说(通常是列表),键应该是0 ~ n-1的整数,其中n为序列的长度。
对映射来说(通常是字典),键可以是任何类型。

class Tag:
    def __init__(self,id):
        self.id=id
 
    def __getitem__(self, item):
        print('这个方法被调用')
        return self.id
 
a=Tag('This is id')
print(a.id)
print(a['python'])

输出:

This is id
这个方法被调用
This is id
  • 第一次输出是因为print打印了a.id
  • 第二次输出是a[‘python’]这一句调用了__getitem__
  • 第三次输出是因为print打印了return的self.id。

由此可见,__getitem__可以通过类似字典的映射获取来触发,也就是 xx[’ '] 这种形式。所以实现了__getitem__这个方法后,我们可以把类当做字典,那么干脆在类中的__init__初始化中建立一个字典对象好了(当然也可以是变量,通过if判断后再return返回)。

你可能感兴趣的:(深度学习,python,开发语言)