久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:34日期: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 編程
相關文章:
主站蜘蛛池模板: 来凤县| 德钦县| 芮城县| 平乡县| 西丰县| 清新县| 谷城县| 利辛县| 阿坝| 汪清县| 北川| 永新县| 屯留县| 民县| 库车县| 桂阳县| 石渠县| 当涂县| 延川县| 松桃| 浮梁县| 盐边县| 茂名市| 石棉县| 鄂州市| 江安县| 重庆市| 定日县| 信丰县| 兰溪市| 黑河市| 岳西县| 新竹县| 临泽县| 盐亭县| 湖州市| 正蓝旗| 大竹县| 定襄县| 达州市| 客服|