lunes, 26 de julio de 2021

Indicar errores en funciones creadas por falta de argumentos en Python3

TypeError : Funciones en Python como evitarlo

En ocasiones tenemos una serie de funciones realizadas en Python pero por algún error la persona que manipula esa función no coloca todo los parámetros necesarios y esta causa un error completo de ejecución.

Se ha creado una función llamada sumaresta la cual necesita tres parámetros a, b, op pero si por error no ingresamos todos estos parámetros no arrojará el siguiente error.

>>> sumaresta(10,10,)
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    sumaresta(10,10,)
TypeError: sumaresta() missing 1 required positional argument: 'op'

TypeError: sumaresta() missing 1 required positional argument: 'op' : esto nos esta indicando que requerimos ingresar el parámetro op para una correcta ejecución de esta manera es un poco molesto observar el TypeError en nuestra pantalla cuando es posible mandar un aviso de la correcta ejecución de la función.

La función sumaresta es la siguiente :

def sumaresta(a,b,op):

    if op == 1:
        c = a+b
        return c
        
    elif op == 2:
        c = a-b
        return c

La función anterior no es posible controlar la falta de parámetros de esta manera podemos hacerlo mediante none ingresándola en los parámetros y dentro de la función mediante una estructura condicional como se muestra :

def sumaresta(a="none",b="none",op="none"):
    
    if (a=="none" or b=="none" or c=="none"):
        print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
        print("                   Funcion Sumaresta                       ")
        print(":                                                         :")
        print("  La función necesita los parámetros : sumaresta(a,b,op)   ")
        print(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
        return

    if op == 1:
        c = a+b
        return c
        
    elif op == 2:
        c = a-b
        return c

En caso de no llenar correctamente la función no indicará el siguiente :

>>> sumaresta(10,)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                   Funcion Sumaresta                       
:                                                         :
  La función necesita los parámetros : sumaresta(a,b,op)   
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

De esta manera podemos saber cuantos parámetros son necesarios en una función e indicar como deben ser ingresados de manera adecuada, aunque la personalización de la función queda sujeta a su criterio.

Licencia Creative Commons