运行时错误:超过最大递归深度,使用默认哈希方法
为什么我在使用默认的哈希方法时会出现“return self.__hash__()
RuntimeError: 超过最大递归深度”的错误呢?
This causes the error:
def __hash__(self):
return self.__hash__()
This works:
def __hash__(self):
return self.name.__hash__()
1 个回答
3
当然,你在调用一个方法的时候,它又自己调用自己,这就导致了无限递归的问题:
def method_name(self):
return self.method_name()
你可能是想调用父类的方法吧?
def __hash__(self):
return super(ClassName, self).__hash__()