我想 subclass
dict
在 python 中,这样子类的所有字典都是不可变的。
我不明白 __hash__
是如何影响不变性的,因为在我的理解中它只是表示对象的 相等 或 不相等!
那么, __hash__
可以用来实现不变性吗?如何 ?
更新:
目标是来自 API 的常见响应可以作为字典使用,它必须作为全局变量共享。那么,无论如何都必须完好无损?
原文由 Yugal Jindle 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想 subclass
dict
在 python 中,这样子类的所有字典都是不可变的。
我不明白 __hash__
是如何影响不变性的,因为在我的理解中它只是表示对象的 相等 或 不相等!
那么, __hash__
可以用来实现不变性吗?如何 ?
更新:
目标是来自 API 的常见响应可以作为字典使用,它必须作为全局变量共享。那么,无论如何都必须完好无损?
原文由 Yugal Jindle 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以仅使用标准库创建 immutable dict
。
from types import MappingProxyType
power_levels = MappingProxyType(
{
"Kevin": 9001,
"Benny": 8000,
}
)
原文由 Konstantin Smolyanin 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答867 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
我找到了一个官方参考:被拒绝的 PEP 中包含的建议。
归因:http: //www.python.org/dev/peps/pep-0351/