¿Cómo manejar el error que ocurre al dar un número incorrecto de parámetros en una llamada de función en Python?
-
19-08-2019 - |
Pregunta
Cuando doy un número incorrecto de parámetros en una función, obtengo errores. ¿Cómo lo manejo?
Di
def fun_name(...):
try:
...
except TypeError:
print 'Wrong no of arg'
No funciona.
Ayuda por favor.
Solución
La persona que llama activa esta excepción, no el receptor.
Si desea que la función de recepción verifique explícitamente el recuento de argumentos, deberá usar varargs:
def fun_name(*args):
if len(args) != 2:
raise TypeError('Two arguments required')
Otros consejos
Debe manejarlo donde llama a la función.
try:
fun_name(...)
except TypeError:
print "error!"
Si llama a una función con el número incorrecto de parámetros, entonces hay dos posibilidades:
- O diseñas tu función para manejar un número arbitrario de argumentos. Entonces deberías saber qué hacer con los argumentos adicionales. La respuesta de Alec Thomas le muestra cómo manejar este caso.
- O su diseño es fundamentalmente defectuoso y usted está en serios problemas. Detectar el error no ayuda en este caso.
Si elimina las partes try ... catch
, debería mostrarle qué tipo de excepción está lanzando.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow