python:__getitem__方法详解
__getitem__(self,key):这个方法返回与指定键想关联的值。对序列来说,键应该是0~n-1的整数,其中n为序列的长度。对映射来说,键可以是任何类型。class Tag:def __init__(self,id):self.id=iddef __getitem__(self, item):print('这个方法被调用.........
·
__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返回)。
class Tag:
def __init__(self):
self.change={'python':'This is python'}
def __getitem__(self, item):
print('这个方法被调用')
return self.change[item]
a=Tag()
print(a['python'])
更多推荐
已为社区贡献1条内容
所有评论(0)