<p>我有一本字典,里面装满了键-对象对。我想使字典不可变,我认为最好/最简单的方法是将其转换为冻结集,但<code>frozenset(dict)</code>和{<cd2>}只存储键。在</p>
<p>使用<code>frozenset(dict.items())</code>我似乎得到了一个包含键-对象对的冻结集,但我不知道如何检索值/键。在</p>
<p>我有下面的代码,只要“\uuufuscators”是一个字典</p>
<pre><code>def obfuscate_value(self, key, value):
obfuscator = self.__obfuscators.get(key)
if obfuscator is not None:
return obfuscator.obfuscate_value(value)
else:
return value
</code></pre>
<p>我试着让它和冷冻装置一起工作:</p>
^{pr2}$
<p>但这就产生了{<cd4>}
并且<code>self.__obfuscators.__getattribute__(key)</code>总是说它没有属性(因为我假设它搜索一个名为key的函数)
有没有更好的方法使字典不可变,或者如何根据键检索对象?在</p>
<p>编辑:
最后我使用<code>tuple(obfuscator.items())</code>将dict转换为元组
然后写了我自己的find value函数:</p>
<pre><code>def find_obfuscator(self, key):
for item in self.__obfuscators:
x, y = item
if self.case_insensitive:
if x.lower() == key.lower():
return y
else:
if x == key:
return y
</code></pre>
<p>我要感谢大家的努力和投入。在</p>