python - 如何更改值 dict out 类
问题描述
我想更改 dict 值,但提醒我一个错误“对象不支持项目分配”
完整代码:
def __init__(self):
self.dict = dict()
def __getitem__(self, item):
return self.dict[item]
arr = SparseArray()
arr[0] = 1```
解决方案
你要覆盖__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
如果对变量的内容没有真正的意义
推荐阅读
- swiftui - 在 SwiftUI 的 ForEach 中保持实例的唯一性
- vue.js - highcharts-vue 中自定义导出按钮中的 onclick 处理程序因“无法读取未定义的属性“调用”而失败
- asp.net-mvc - 为 Razor cshtml 视图编写单元测试以确保它们可以编译
- java - 尝试在成功登录后将 Spring Boot 用户转移到 /home 或 /index 的方法
- php - php路由显示一个url的两个页面
- stata - 计算面板中的缺失值
- c# - 尝试评估 LINQ 查询参数表达式时引发异常
- javascript - Javascript递归函数改变对象结构
- clickhouse - 问:如何配置 ClickHouse 返回 NULL 而不是 0?
- r - 恢复导致内核恐慌的代码行