Conceptos básicos de los argumentos predeterminados
¿Qué son los argumentos predeterminados?
En Python, los argumentos predeterminados son parámetros de función que tienen valores predefinidos. Cuando se llama a una función, si no se proporciona un valor para estos parámetros, se utilizan automáticamente los valores predeterminados. Esta característica permite definir funciones más flexibles y concisas.
Sintaxis básica
def greet(name="Guest", message="Hello"):
print(f"{message}, {name}!")
## Different ways of calling the function
greet() ## Output: Hello, Guest!
greet("Alice") ## Output: Hello, Alice!
greet("Bob", "Welcome") ## Output: Welcome, Bob!
Características clave
1. Parámetros opcionales
Los argumentos predeterminados hacen que los parámetros sean opcionales. Cuando no se especifican, se utiliza el valor predefinido:
def create_profile(username, age=None, city="Unknown"):
profile = {
"username": username,
"age": age,
"city": city
}
return profile
## Different profile creation scenarios
print(create_profile("john_doe"))
print(create_profile("jane_smith", 30, "New York"))
2. Argumentos predeterminados inmutables vs mutables
graph TD
A[Default Arguments] --> B[Immutable Types]
A --> C[Mutable Types]
B --> D[Integers, Strings, Tuples]
C --> E[Lists, Dictionaries]
Argumentos predeterminados inmutables (Seguros)
def increment(value, increment=1):
return value + increment
Argumentos predeterminados mutables (Cuidado)
def add_item(item, list=[]): ## Dangerous pattern
list.append(item)
return list
## Unexpected behavior
print(add_item(1)) ## [1]
print(add_item(2)) ## [1, 2]
3. Prácticas recomendadas
Práctica |
Descripción |
Ejemplo |
Usar None para valores predeterminados mutables |
Inicializar valores predeterminados mutables dentro de la función |
def func(param=None): param = param or [] |
Regla de izquierda a derecha |
Los argumentos predeterminados deben colocarse después de los argumentos no predeterminados |
def func(required, optional=default) |
Casos de uso comunes
- Parámetros de configuración
- Transformaciones opcionales
- Niveles de registro predeterminados
- Parámetros de solicitud de API
Consideraciones de rendimiento
Los argumentos predeterminados se evalúan solo una vez cuando se define la función, no cada vez que se llama a la función. Esto puede llevar a un comportamiento inesperado con valores predeterminados mutables.
Mejores prácticas con LabEx
Cuando se aprende a programar en Python con LabEx, siempre tenga en cuenta cómo funcionan los argumentos predeterminados. Practique la creación de funciones con diferentes escenarios de argumentos predeterminados para adquirir una comprensión sólida.