我想将Python的内置set类与我创建的自定义类一起使用.如果我想创建包含我的自定义类实例的集合,我需要实现哪些函数才能执行测试,比如set_a - set_b?
Bjö*_*lex 32
它可以开箱即用,但是,有可能出现过载的情况__eq__,__ne__并且__hash__.默认情况下,__eq__将比较对象标识.这可能不是你想要的.在这种情况下,你必须注意相等的对象具有相等的哈希值,理想情况下,不相等的对象具有不同的哈希值(虽然这不是必需的,但它只是减少了冲突).您应该始终__ne__使用__eq__,除非您有特定的理由不这样做(这样做是为了确保逻辑一致性).
此外,在重载时__hash__,您必须注意在对象存储在a中时散列不会更改set.
| 归档时间: |
|
| 查看次数: |
13691 次 |
| 最近记录: |