我有一个从 SageObject 继承的 Sage 类。根据 Python 文档,
用户定义的类默认有
__cmp__()
和__hash__()
方法;与它们一起,所有对象都比较不相等(除了它们自己)并x.__hash__()
返回id(x)
。
然而,我的类并没有这样做,尽管它没有实现__hash__
自己的方法。相反,它使用其字符串表示的哈希值(由其__str__
方法返回的那个)。这部分 Sage 类的设计与普通的 Python 类有什么不同吗?为了找到可接受的哈希值,Sage 是否有可能查看位置的层次结构?