1.6 KiB
1.6 KiB
La méthode missing
Synthaxe
object.__missing__(self, key)
La méthode object.__missing__
définit le comportement à adopter par une classe fille de dict
lors de l'accès à une clé non
présente. Cette méthode est appelée par la méthode dict.__getitem__
lorsque la clé demandée n'est pas présente dans le
dictionnaire. La valeur de retour de la méthode object.__missing__
permet de spécifier la valeur à retourner lorsque
la méthode dict.__getitem__
est appelée lorsque la clé n'est pas présente.
Exemples
Comportement par défaut
d = {}
key = "toto"
dummy_key = f'{key}_'
d[key] = [1, 2, 3]
print(f'd[{key}]={d[key]}')
print(f'd[{dummy_key}]={d[dummy_key]}')
~Traceback (most recent call last):
File "<stdin>", line 11, in <module>
File "<stdin>", line 9, in main
KeyError: 'toto_'~
Exemple de la création d'une entrée dans le dictionnaire en cas d'absence de la clé
class DictSubclass(dict):
def __missing__(self, key):
ret = []
self[key] = ret
return ret
d = DictSubclass()
key = "toto"
dummy_key = f'{key}_'
d[key] = [1, 2, 3]
print(f'd[{key}]={d[key]}')
print(f'd[{dummy_key}]={d[dummy_key]}')
d[toto]=[1, 2, 3] d[toto_]=[]