0
我似乎无法创建没有__hash__
属性(即哪个hasattr(Obj, "__hash__")
返回False
)的对象。我试图做这个测试目的,但现在我很好奇,为什么我不能。我曾尝试一些事情如下:为什么我不能删除“__hash__”属性?
class NoHash(object):
def __init__(self):
delattr(self, "__hash__")
我们得到以下:
Traceback (most recent call last):
File "/home/irh/poly/tests/test_poly.py", line 23, in setUp
self.no_hash = NoHash()
File "/home/irh/poly/tests/test_poly.py", line 15, in __init__
delattr(self, "__hash__")
AttributeError: __hash__
此代码产生任何错误:
class NoHash(object):
def __init__(self):
self.__hash__ = None
delattr(self, "__hash__")
,但我得到的nhash = NoHash(); print(hasattr(nhash, "__hash__"))
仍然给我真正。只是好奇这里发生了什么。
对不起,如果这是非常愚蠢的事情要问......但问题是关于python。你的意思是Python的基础C实现吗? – irh
是的。这就是为什么我把我所做的文档链接起来。 –
哇,对不起,甚至没有注意到链接。感谢你的回答。 – irh