什么是“self.__class__.__missing__”?意思是
在 pinax Userdict.py 中:
def __getitem__(self, key):
if key in self.data:
return self.data[key]
if hasattr(self.__class__, "__missing__"):
return self.__class__.__missing__(self, key)
为什么它在 self.__class__.__missing__
上执行此操作。
谢谢
in pinax Userdict.py:
def __getitem__(self, key):
if key in self.data:
return self.data[key]
if hasattr(self.__class__, "__missing__"):
return self.__class__.__missing__(self, key)
why does it do this on self.__class__.__missing__
.
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此处提供的 UserDict.py 模拟内置
dict
紧密相连,例如:正如您可以在子类化内置
dict
时重写特殊方法 __missing__ 来处理丢失的键一样,也可以当您子类化UserDict
时,您可以覆盖它。dict 的官方 Python 文档位于此处,他们确实说:
The UserDict.py presented here emulates built-in
dict
closely, so for example:just as you can override the special method
__missing__
to deal with missing keys when you subclass the built-indict
, so can you override it when you subclass thatUserDict
.The official Python docs for dict are here, and they do say:
如果您想在字典中使用默认值(又名__missing__),您可以查看
defaultdict
来自集合模块:If you want to use default values in a dict (aka __missing__), you can check out
defaultdict
from collections module: