Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto

Dominando argumentos de funciones en Python

Descubra cómo diseñar funciones que acepten números variables de argumentos en Python—usando valores por defecto, palabras clave y parámetros arbitrarios para código más limpio y adaptable.

Video: Argumentos de funciones en Python: Posicionales, Palabras clave y Por defecto

Argumentos

En el tema de funciones definidas por el usuario, cubrimos definición e invocación de funciones. Una llamada que no coincide con la firma esperada lanza error. Por ejemplo:

def saludar(nombre, msg):
    """Esta función saluda a la persona con el mensaje proporcionado."""
    print("Hola", nombre + ", " + msg)
saludar("Mónica", "¡Buenos días!")

Salida

Hola Mónica, ¡Buenos días!

La función saludar() acepta dos parámetros. Llamarla con el número correcto de argumentos funciona sin problemas; de lo contrario, el intérprete emite un TypeError con mensaje claro.

>>> saludar("Mónica") # solo un argumento
TypeError: saludar() missing 1 required positional argument: 'msg'
>>> saludar() # sin argumentos
TypeError: saludar() missing 2 required positional arguments: 'nombre' and 'msg'

Argumentos de función variables

Python ofrece formas flexibles de aceptar un número variable de argumentos. Tres patrones comunes se cubren a continuación.

Argumentos por defecto en Python

Los parámetros pueden recibir valores por defecto usando el operador de asignación (=). El siguiente ejemplo demuestra cómo un mensaje opcional por defecto es "¡Buenos días!":

def saludar(nombre, msg="¡Buenos días!"):
    """ Esta función saluda a la persona con el mensaje proporcionado.
    Si el mensaje no se suministra, por defecto es "¡Buenos días!". """
    print("Hola", nombre + ", " + msg)
saludar("Kate")
saludar("Bruce", "¿Cómo estás?")

Salida

Hola Kate, ¡Buenos días!
Hola Bruce, ¿Cómo estás?

En esta definición, nombre es obligatorio, mientras que msg es opcional. Cuando hay un argumento por defecto presente, todos los parámetros subsiguientes deben tener también valores por defecto; de lo contrario ocurre SyntaxError.

def saludar(msg = "¡Buenos días!", nombre): pass
SyntaxError: non-default argument follows default argument

Argumentos por palabra clave en Python

Python permite a los llamadores especificar argumentos por nombre, permitiendo flexibilidad en el orden posicional. La misma función saludar() puede invocarse así:

# 2 argumentos por palabra clave
saludar(nombre = "Bruce", msg = "¿Cómo estás?")
# 2 argumentos por palabra clave (fuera de orden)
saludar(msg = "¿Cómo estás?", nombre = "Bruce")
# 1 posicional, 1 por palabra clave
saludar("Bruce", msg = "¿Cómo estás?")

Mezclar argumentos posicionales y por palabra clave es permisible solo cuando todos los argumentos posicionales preceden a los de palabra clave; de lo contrario resulta SyntaxError.

saludar(nombre="Bruce","¿Cómo estás?")
SyntaxError: non-keyword arg after keyword arg

Argumentos arbitrarios en Python

Cuando el número de argumentos es desconocido en tiempo de diseño, use un asterisco (*) para capturarlos como tupla:

def saludar(*nombres):
    """Saluda a cada nombre en la tupla suministrada."""
    for nombre in nombres:
        print("Hola", nombre)
saludar("Mónica", "Lucas", "Esteban", "Juan")

Salida

Hola Mónica
Hola Lucas
Hola Esteban
Hola Juan

Dentro de la función, nombres es una tupla que contiene todos los argumentos pasados, que luego puede iterarse o procesarse según necesidad.

python

  1. Dominando tipos de datos en Python: Guía práctica
  2. Dominando operadores en Python: Guía completa
  3. Dominando la sentencia pass en Python: Guía práctica
  4. Funciones lambda en Python: Guía práctica de funciones anónimas
  5. Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
  6. Generadores en Python: Iteración Eficiente y Casos de Uso Avanzados
  7. Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
  8. Dominando Decoradores en Python: Mejora Funciones con Técnicas Expertas
  9. Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
  10. Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
  11. Función abs() en Python: calcular valores absolutos para números y complejos