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.