python中的__sgetitem__属性
时间: 2023-07-02 10:04:14 浏览: 107
在 Python 中,双下划线(__)开头和结尾的属性是特殊属性或方法,也称为魔法方法或特殊方法。__getitem__ 方法是其中之一,用于对象的索引操作。
当我们使用类似于 obj[key] 的方式获取对象的值时,Python 实际上会调用该对象的 __getitem__ 方法,并传入索引值 key 作为参数。因此,如果我们想让自定义的对象支持索引操作,需要在该对象中实现 __getitem__ 方法。
下面是一个简单的例子,演示了如何在类中实现 __getitem__ 方法:
```python
class MyList:
def __init__(self, data):
self.data = data
def __getitem__(self, index):
return self.data[index]
my_list = MyList([1, 2, 3, 4, 5])
print(my_list[0]) # 输出:1
print(my_list[2]) # 输出:3
```
在上面的例子中,我们定义了一个 MyList 类,并实现了 __getitem__ 方法,该方法接受一个索引值 index,然后返回该索引对应的元素。最后,我们创建了一个 my_list 对象,并使用索引操作来获取其元素。
需要注意的是,如果我们想让对象支持切片操作(类似于 obj[start:end]),则需要在对象中实现 __getitem__ 和 __setitem__ 方法。
阅读全文