擅长:python、mysql、java
<p>您可以,可能是,子类<code>collections.UserDict</code>(或者可能是@abamert建议的<code>dict</code>),并在特殊方法<code>__getitem__</code>中编写某种开关/过滤器/格式化程序:</p>
<p>可能是这样的:</p>
<pre><code>from collections import UserDict
class MyDict(UserDict):
def __getitem__(self, key):
if key == 'name':
return self.data[key][3:]
if key == 'speed':
return round(self.data[key], 3)
return self.data[key]
if __name__ == '__main__':
mydata = MyDict({'name': 'ABCDEF', 'speed': 12.123456})
print(mydata['name'], mydata['speed'])
</code></pre>
<h3>输出:</h3>
<pre><code>DEF 12.123
</code></pre>
<p>或子类化<code>dict</code>:</p>
<pre><code>class MyDict(dict):
def __getitem__(self, key):
if key == 'name':
return self.get(key)[3:]
if key == 'speed':
return round(self.get(key), 3)
return self[key]
</code></pre>
<p><strong>免责声明:</strong><em>这更像是一个概念证明,而不是任何东西;我不推荐这种方法;这个“开关”很难看,一旦约束列表增加一点,它就可能失控</em></p>