__getitem__
方法class MyList:
def __init__(self, *args):
self.data = list(args)
def __getitem__(self, index):
return self.data[index]
def __len__(self):
return len(self.data)
my_list = MyList(1, 2, 3, 4, 5)
print(my_list[2])
运行结果:
3
在上面的示例中,我们自定义了一个List类MyList
,并在其__getitem__
方法中实现了通过索引访问元素的功能。当我们创建一个MyList
对象并访问索引为2的元素时,会返回数字3,即第三个元素。
class MyDict:
def __init__(self, *args, **kwargs):
self.data = dict(*args, **kwargs)
def __getitem__(self, key):
return self.data[key]
def __len__(self):
return len(self.data)
my_dict = MyDict({'a': 1, 'b': 2, 'c': 3})
print(my_dict['b'])
运行结果:
2
在上面的示例中,我们自定义了一个Dict类MyDict
,并在其__getitem__
方法中实现了通过键访问元素的功能。当我们创建一个MyDict
对象并访问键为’b’的元素时,会返回数字2。
__getitem__
方法的注意事项__getitem__
方法通常与__len__
方法一起使用,以便能够正确地支持切片等操作。总之,通过重写__getitem__
方法,我们可以使自定义类拥有类似列表、字典等内置容器的行为,从而更加灵活地使用和操作对象的元素。