Me gustaría saber si es posible determinar si se pasó un parámetro de función con un valor predeterminado en Python. Por ejemplo, ¿cómo funciona dict.pop?Determinar si se pasó un parámetro con nombre
>>> {}.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
¿Cómo determina el método pop que la primera vez que un valor de retorno por defecto no se aprobó? ¿Es esto algo que solo se puede hacer en C?
Gracias
Esto no es útil si 'None' también es un valor significativo para el parámetro. El ejemplo es 'dict.pop' y su comportamiento cuando no se encuentra la clave: devuelve el segundo parámetro si está presente, o plantea KeyError en caso contrario. – Kos
En ese caso, podría crear una variable de cierre con un objeto. 'MISSING = object(); def foo (arg = FALTA): si arg es FALTA: ... ' –