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

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

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

瀏覽:40日期: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 編程
相關文章:
主站蜘蛛池模板: 苏尼特左旗| 眉山市| 平舆县| 辉县市| 大理市| 新巴尔虎左旗| 柳江县| 儋州市| 建瓯市| 凉山| 定西市| 渝中区| 闸北区| 聂拉木县| 万安县| 林西县| 鄯善县| 乐清市| 汨罗市| 大化| 徐州市| 长汀县| 炉霍县| 泾川县| 营口市| 蒙城县| 寿光市| 虞城县| 荆州市| 荆门市| 延津县| 鞍山市| 双鸭山市| 余姚市| 察隅县| 阳朔县| 洪泽县| 道真| 巩义市| 清水河县| 太白县|