Files
org-roamings/20220101172208-la_methode___missing__.org
2022-06-04 12:57:39 +02:00

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_]=[]