Python:为什么我可以将可变对象放入字典或集合中?
Python不会测试 可变 对象,而是测试可 哈希 对象。
自定义类实例默认情况下是可哈希的。很好,因为__eq__此类的默认实现仅测试实例 身份 ,并且哈希基于相同的信息。
__eq__
换句话说,更改实例属性的状态并不重要,因为实例的 身份 始终是不可变的。
一旦实现了将实例状态考虑在内的__hash__and__eq__方法,您可能会遇到麻烦,应该停止对该状态进行更改。只有这样,自定义类实例才不再适合存储在字典或集合中。
__hash__
你尚未登录,登录后可以
和开发者交流问题的细节
关注并接收问题和回答的更新提醒
参与内容的编辑和改进,让解决方法与时俱进
联系我
602392714
清零编程群