提问人:LateGameLank 提问时间:11/17/2023 更新时间:11/17/2023 访问量:25
抽象类的哈希可散列性
Hashability of Abstract Classes
问:
我正在上一门关于 Python 的大学入门课程,我们刚刚开始讨论 OOP。同时,我们正在讨论哈希性。根据定义,如果一个对象具有已定义的方法,并且定义了任何两个相等的对象必须具有相同的哈希值,则该对象是可哈希的。给定这些简单条件,假设我们定义了以下类:__hash__
__eq__
Toy
Class Toy:
def __init__(self, values):
self._elems = []
def increase(self, value):
self._elems.append(value)
def __eq__(self, other):
return self._elems == other._elems
def __hash__(self):
return id(self)
虽然我的教科书断言这个类是可散列的,但我不明白这怎么可能。例如,我可以假设修改两个预先存在的对象,使它们的属性相同。因此,当比较相等时,这两个对象将被视为相等。但是,这两个对象必然具有不同的值;那么,它们怎么可能返回相同的哈希值呢?Toy
_elems
id
答: 暂无答案
评论
__init__
values