Python “自我”是什么意思
在pinax Userdict.py中:Python “自我”是什么意思,python,pinax,Python,Pinax,在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) 为什么它会在自己身上这样做 感谢展示的UserDict.p
def __getitem__(self, key):
if key in self.data:
return self.data[key]
if hasattr(self.__class__, "__missing__"):
return self.__class__.__missing__(self, key)
为什么它会在自己身上这样做
感谢展示的UserDict.py与内置dict非常接近,例如:
>>> class m(dict):
... def __missing__(self, key): return key + key
...
>>> a=m()
>>> a['ciao']
'ciaociao'
正如在对内置dict进行子类化时,可以重写特殊方法来处理缺少的键一样,在对该UserDict进行子类化时,也可以重写它
dict的官方Python文档是,它们确实说:
版本2.5中新增:如果
dict定义了一个方法uuu缺失uuuu,
如果钥匙不存在,则
d[key]操作调用该方法
以键作为参数。这个
d[键]操作然后返回或
引发返回或引发的任何内容
如果
钥匙不存在。没有别的
操作或方法调用
__失踪。如果未定义uuu missing uuuu,则会引发KeyError。
__缺少_uu必须是一个方法;它不能是实例变量。为了
示例,请参见collections.defaultdict
提供的UserDict.py与内置dict非常相似,例如:
>>> class m(dict):
... def __missing__(self, key): return key + key
...
>>> a=m()
>>> a['ciao']
'ciaociao'
正如在对内置dict进行子类化时,可以重写特殊方法来处理缺少的键一样,在对该UserDict进行子类化时,也可以重写它
dict的官方Python文档是,它们确实说:
版本2.5中新增:如果
dict定义了一个方法uuu缺失uuuu,
如果钥匙不存在,则
d[key]操作调用该方法
以键作为参数。这个
d[键]操作然后返回或
引发返回或引发的任何内容
如果
钥匙不存在。没有别的
操作或方法调用
__失踪。如果未定义uuu missing uuuu,则会引发KeyError。
__缺少_uu必须是一个方法;它不能是实例变量。为了
示例,请参见collections.defaultdict
如果要在dict aka _________中使用默认值,可以从“集合”模块中签出:
from collections import defaultdict
a = defaultdict(int)
a[1] # -> 0
a[2] += 1
a # -> defaultdict(int, {1: 0, 2: 1})
如果要在dict aka _________中使用默认值,可以从“集合”模块中签出:
from collections import defaultdict
a = defaultdict(int)
a[1] # -> 0
a[2] += 1
a # -> defaultdict(int, {1: 0, 2: 1})