__setiten__的用法
时间: 2023-08-20 14:09:02 浏览: 35
`__setitem__` 是 Python 中的一个特殊方法(也称为魔术方法或双下划线方法),用于定义对象在使用索引赋值操作时的行为。它在类中被定义时,可以使对象具有类似字典的行为,可以通过索引来设置对象的值。
下面是一个使用 `__setitem__` 方法的示例:
```python
class MyDict:
def __init__(self):
self.data = {}
def __setitem__(self, key, value):
self.data[key] = value
my_dict = MyDict()
my_dict['name'] = 'John' # 使用索引赋值
print(my_dict.data) # 输出: {'name': 'John'}
```
在上面的例子中,我们定义了一个 `MyDict` 类,它包含一个属性 `data`,该属性用于存储键值对。通过实现 `__setitem__` 方法,我们使得对象可以通过索引赋值的方式向 `data` 中添加新的键值对。
当执行 `my_dict['name'] = 'John'` 这行代码时,Python 解释器会自动调用 `__setitem__` 方法,并将键 `'name'` 和值 `'John'` 作为参数传递给该方法。在 `__setitem__` 方法中,我们将键值对添加到 `data` 属性中。
需要注意的是,`__setitem__` 方法并不仅限于字典的实现,它也可以用于其他可变容器类型的自定义实现,如列表、集合等。