Je voudrais savoir s'il est possible de déterminer si un paramètre de fonction avec une valeur par défaut a été passé en Python. Par exemple, comment fonctionne dict.pop?Déterminer si un paramètre nommé a été passé
>>> {}.pop('test')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'pop(): dictionary is empty'
>>> {}.pop('test',None)
>>> {}.pop('test',3)
3
>>> {}.pop('test',NotImplemented)
NotImplemented
Comment la méthode pop déterminer que la première fois une valeur de retour par défaut n'a pas été adopté? Est-ce quelque chose qui ne peut être fait qu'en C?
Merci
Cela n'est pas utile si 'None' est également une valeur significative pour le paramètre. L'exemple est 'dict.pop' et son comportement quand la clé n'est pas trouvée - il retourne le deuxième paramètre s'il est présent, ou soulève KeyError autrement. – Kos
Dans ce cas, vous pouvez créer une variable de fermeture avec un objet. 'MISSING = objet(); def foo (arg = MISSING): si arg est manquant: ... ' –