Combinación de Argumentos Arbitrarios Posicionales y de Palabras Clave
Considere una función que calcula el costo total de múltiples artículos, permitiendo pasar cualquier cantidad de precios y configuraciones opcionales mediante palabras clave, como descuentos o impuestos.
12345678910111213141516171819202122232425def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
Reglas para combinar argumentos arbitrarios
Argumentos arbitrarios posicionales (*args)
*args recopila todos los argumentos posicionales adicionales en una tupla.
En este ejemplo, la función puede recibir cualquier cantidad de precios de artículos sin necesidad de definirlos explícitamente.
Por ejemplo:
calculate_total_cost(500, 250, 100)
Aquí, *prices se convierte en (500, 250, 100).
Argumentos arbitrarios por palabra clave (**kwargs)
**kwargs recopila todos los argumentos nombrados (por palabra clave) en un diccionario.
Esto permite que la función acepte configuraciones adicionales nombradas como discount o tax, incluso si no fueron predefinidas.
Por ejemplo:
calculate_total_cost(1000, 500, discount=10, tax=5)
Aquí, **settings se convierte en {'discount': 10, 'tax': 5}.
Combinando ambos
Puedes usar tanto *args como **kwargs en la misma función para lograr máxima flexibilidad — permitiendo manejar cualquier cantidad de valores posicionales y cualquier combinación de configuraciones nombradas.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 4.17
Combinación de Argumentos Arbitrarios Posicionales y de Palabras Clave
Desliza para mostrar el menú
Considere una función que calcula el costo total de múltiples artículos, permitiendo pasar cualquier cantidad de precios y configuraciones opcionales mediante palabras clave, como descuentos o impuestos.
12345678910111213141516171819202122232425def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
Reglas para combinar argumentos arbitrarios
Argumentos arbitrarios posicionales (*args)
*args recopila todos los argumentos posicionales adicionales en una tupla.
En este ejemplo, la función puede recibir cualquier cantidad de precios de artículos sin necesidad de definirlos explícitamente.
Por ejemplo:
calculate_total_cost(500, 250, 100)
Aquí, *prices se convierte en (500, 250, 100).
Argumentos arbitrarios por palabra clave (**kwargs)
**kwargs recopila todos los argumentos nombrados (por palabra clave) en un diccionario.
Esto permite que la función acepte configuraciones adicionales nombradas como discount o tax, incluso si no fueron predefinidas.
Por ejemplo:
calculate_total_cost(1000, 500, discount=10, tax=5)
Aquí, **settings se convierte en {'discount': 10, 'tax': 5}.
Combinando ambos
Puedes usar tanto *args como **kwargs en la misma función para lograr máxima flexibilidad — permitiendo manejar cualquier cantidad de valores posicionales y cualquier combinación de configuraciones nombradas.
¡Gracias por tus comentarios!