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