您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:为什么我可以将可变对象放入字典或集合中?

Python:为什么我可以将可变对象放入字典或集合中?

Python不会测试 可变 对象,而是测试可 哈希 对象。

自定义类实例认情况下是可哈希的。很好,因为__eq__此类的认实现仅测试实例 身份 ,并且哈希基于相同的信息。

换句话说,更改实例属性的状态并不重要,因为实例的 身份 始终是不可变的。

一旦实现了将实例状态考虑在内的__hash__and__eq__方法,您可能会遇到麻烦,应该停止对该状态进行更改。只有这样,自定义类实例才不再适合存储在字典或集合中。

python 2022/1/1 18:34:52 有409人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶