运行时错误:超过最大递归深度,使用默认哈希方法

2 投票
1 回答
683 浏览
提问于 2025-04-18 04:12

为什么我在使用默认的哈希方法时会出现“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__()

撰写回答