CodeGym /Cursos /Python SELF ES /Trabajo avanzado con parámetros

Trabajo avanzado con parámetros

Python SELF ES
Nivel 6 , Lección 5
Disponible

11.1 Número infinito de parámetros

En Python, las funciones pueden ser diseñadas para aceptar infinitos parámetros. Esto se logra usando argumentos pasados a través de *args para parámetros regulares y **kwargs para parámetros pasados por nombre.

Uso de *args

*args permite que una función acepte un número arbitrario de argumentos posicionales, que la función tratará como una tupla. Ejemplo de uso:


def print_all(*args):
    for item in args:
        print(item)
        
print_all(1, 'apple', True)  # imprimirá 1, apple y True.
        

La variable args contendrá una tupla con todos los parámetros que fueron pasados a la función al ser llamada.

Uso de **kwargs

**kwargs funciona de manera similar a *args, pero para argumentos pasados por nombre, representados como un diccionario. Esto permite que una función acepte cualquier cantidad de argumentos con nombre:


def print_named_items(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
        
print_named_items(fruit='apple', number=1)  # imprimirá fruit: apple y number: 1
        

Estos mecanismos hacen que las funciones sean extremadamente flexibles y útiles en escenarios donde se desconoce la cantidad de parámetros de antemano, como al desarrollar APIs o funciones para el manejo de eventos.

Veremos ambos casos con más detalle más adelante, pero debes saber que en Python dentro de una función es muy fácil acceder a todos los argumentos que le pasaste. Y puedes pasar a la función todo lo que quieras.

11.2 Especificación de tipos

Como sabrás, las variables en Python no tienen un tipo especificado de antemano. A cualquier variable se le puede asignar un valor de cualquier tipo, y en la siguiente línea asignarle un valor de un nuevo tipo, etc.

Esto es muy conveniente para programas pequeños, pero no tanto para los grandes. Cuando el programa es muy grande y el número de funciones es de miles, el programador no puede recordar qué datos exactamente debe pasar a una función y en qué orden.

En lenguajes con tipado estático, el IDE indica a los programadores qué parámetros y de qué tipos deben pasarse al llamar una función. Pero Python es un lenguaje con tipado dinámico, y aquí esas indicaciones no surgen de la nada.

Por eso, los creadores de Python idearon algo llamado type hinting. Es algo así como los tipos de variables, pero son más bien recomendaciones que tipos. Los tipos indicados no imponen restricciones.

La especificación de tipos fue introducida en Python 3.5 y se hizo popular gracias al estándar PEP 484. Este es un mecanismo que permite a los programadores definir los tipos esperados de variables, argumentos y valores devueltos de funciones.

Aunque Python sigue siendo un lenguaje de tipado dinámico, la indicación de tipos añade claridad y permite la comprobación estática de tipos. Ejemplos de especificación de tipos:


def add_numbers(a: int, b: int) -> int:
    return a + b
        

El tipo de una variable se indica a través de dos puntos, y el tipo del resultado devuelto por la función con una flecha.

Ventajas que ofrece la especificación de tipo-recomendación:

  • Mejora de la documentación: Una indicación explícita de tipos hace que el código sea auto documentable.
  • Mejor autocompletado: Los editores de código pueden usar la información sobre tipos para mejorar el autocompletado.
  • Ayuda en la depuración: La comprobación estática de tipos puede detectar potenciales errores antes de ejecutar el programa.

Herramientas para trabajar con tipos

Python en sí no reacciona a los tipos de variables declarados. En su lugar, Python tiene una utilidad especial — mypy — un popular analizador de tipos estático que ayuda a detectar errores en el código que utiliza la indicación de tipos.

1
Опрос
Funciones en Python,  6 уровень,  5 лекция
недоступен
Funciones en Python
Funciones en Python
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION