如果我有一个包含多个Object:value,
的字典,我如何使用它作为[key]
来检索某些对象?在
例如
class Obj():
def __init__(self, value):
self.value = value
dct = {Obj(foo):foo_value, Obj(bar):bar_value}
#How to do something like
#>>> dct[foo]
#foo_value
假设foo_值不能被指定为Obj的属性。在
到目前为止,这是我得到的(抽象)
^{pr2}$以及输出
dict_keys([item1, item2])
Traceback (most recent call last):
File "C:\Users\ivan\Desktop\multi_e.py", line 197, in <module>
dct['item1']
KeyError: 'item1'
使用
dict
的自定义实现如何?在这将不起作用,因为键不是字符串,但它们是
Obj
类型的对象。即使所有的物体都有那根弦 你可以这么做。将变量作为对对象的引用存储为键要找回你需要做的事:
^{pr2}$您可以使用自定义的
__getitem__
和__setitem__
推出自己的dict子类,实际上在您的Obj
类上不需要任何复杂的__hash__
方法,只要__init__
就足够了。在演示:
^{pr2}$相关问题 更多 >
编程相关推荐