擅长:python、mysql、java
<p>考虑代理<code>dict</code>,而不是子类化它。这意味着只允许您定义的方法,而不返回到<code>dict</code>的实现。</p>
<pre><code>class FixedDict(object):
def __init__(self, dictionary):
self._dictionary = dictionary
def __setitem__(self, key, item):
if key not in self._dictionary:
raise KeyError("The key {} is not defined.".format(key))
self._dictionary[key] = item
def __getitem__(self, key):
return self._dictionary[key]
</code></pre>
<p>另外,您应该使用字符串格式而不是<code>+</code>来生成错误消息,否则对于任何不是字符串的值,它都将崩溃。</p>