Le UserDict.py présenté here émule intégrées dict
près, donc par exemple:
>>> class m(dict):
... def __missing__(self, key): return key + key
...
>>> a=m()
>>> a['ciao']
'ciaociao'
comme vous pouvez remplacer la méthode spéciale __missing__
pour traiter les clés manquantes lorsque vous sous-classe le dict
intégré, de sorte que vous pouvez le remplacer lorsque vous sous-classe que UserDict
.
Les docs Python officiels pour dict sont here, et ils le font dire:
Nouveau dans la version 2.5: Si une sous-classe de dict définit une méthode __missing__
(), si la clé clé est absente , l'opération d[key]
appelle cette méthode avec la clé en tant qu'argument. L'opération d[key]
renvoie alors ou lève tout ce qui est renvoyé ou déclenché par l'appel __missing__(key)
si la clé n'est pas présente. Aucune autre opération ou méthode n'appelle __missing__()
. Si __missing__()
n'est pas défini, KeyError
est déclenché. __missing__()
doit être une méthode; ça ne peut pas être une variable d'instance. Pour un exemple , voir collections.defaultdict
.