国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

我可以使用可變對象作為python中的字典鍵。這是不允許的嗎?

瀏覽:39日期:2022-08-07 11:46:28
如何解決我可以使用可變對象作為python中的字典鍵。這是不允許的嗎??

具有方法的任何對象都可以是字典鍵。對于您編寫的類,此方法默認返回基于id(self)的值,并且如果相等性不是由這些類的標識決定的,則將它們用作鍵可能會讓您感到驚訝:

>>> class A(object):... def __eq__(self, other):... return True... >>> one, two = A(), A()>>> d = {one: 'one'}>>> one == twoTrue>>> d[one]’one’>>> d[two]Traceback (most recent call last): File '<stdin>', line 1, in <module>KeyError: <__main__.A object at 0xb718836c>>>> hash(set()) # sets cannot be dict keysTraceback (most recent call last): File '<stdin>', line 1, in <module>TypeError: unhashable type: ’set’

在2.6版中進行了更改:__hash__現在可以設置為None,以將類實例明確標記為不可哈希。[]

class Unhashable(object): __hash__ = None解決方法

class A(object): x = 4i = A()d = {}d[i] = 2print di.x = 10print d

我以為只有不可變的對象才可以是字典鍵,但是上面的對象是可變的。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 松潘县| 禹城市| 泊头市| 衡山县| 承德县| 额济纳旗| 信阳市| 龙山县| 井冈山市| 屏东县| 长沙县| 裕民县| 博罗县| 霍林郭勒市| 抚顺市| 长泰县| 广丰县| 思南县| 乐业县| 石景山区| 乌拉特中旗| 海安县| 祁阳县| 共和县| 体育| 乌兰察布市| 洛扎县| 且末县| 肃南| 伊宁市| 祁东县| 巍山| 定襄县| 永昌县| 会宁县| 米泉市| 永宁县| 吉安市| 福鼎市| 会泽县| 桂东县|