首页 > 解决方案 > 如何更改值 dict out 类

问题描述

我想更改 dict 值,但提醒我一个错误“对象不支持项目分配”

完整代码:

    def __init__(self):
        self.dict = dict()

    def __getitem__(self, item):
        return self.dict[item]


arr = SparseArray()
arr[0] = 1```

标签: python

解决方案


你要覆盖__setitem__

def __setitem__(self, key, value):
    self.dict[key] = value

然后你就可以使用索引来赋值

# use of __setitem__
arr[0] = 1
arr["foo"] = 5

# use of __getitem__
print(arr[0])  # 1
print(arr["foo"])  # 5

还要避免将变量命名为内置名称dict,至少您可以使用items,或者values如果对变量的内容没有真正的意义


推荐阅读