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

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

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

瀏覽:22日期: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 編程
相關文章:
主站蜘蛛池模板: 仪征市| 化德县| 电白县| 乌恰县| 大同市| 金湖县| 阿拉善右旗| 永定县| 鄂温| 泽库县| 平远县| 阿巴嘎旗| 策勒县| 天门市| 乌拉特前旗| 武陟县| 石景山区| 四子王旗| 高要市| 上饶县| 衡水市| 会同县| 叶城县| 城市| 佳木斯市| 浪卡子县| 富锦市| 沭阳县| 高平市| 克山县| 河北省| 伊金霍洛旗| 临江市| 哈密市| 华坪县| 新干县| 翁牛特旗| 册亨县| 安远县| 徐水县| 安顺市|