Argumentos opcionales en Python

  1. Función de Python con múltiples argumentos opcionales
  2. Hacer que los argumentos sean opcionales en Python
  3. Conclusión

En python, hay algo llamado argumento opcional. También se conoce como argumento opcional o parámetro opcional en python. Un argumento o un parámetro significan lo mismo. Puedes usar estas palabras indistintamente. Un argumento o un parámetro es una entrada que una función toma.

Función de Python con múltiples argumentos opcionales

Siempre que llames a una función, tienes que pasar algunos argumentos a esa función dependiendo de si una función toma argumentos o no. No es obligatorio pasar un argumento a una función. Una función puede no tomar ningún argumento o puede tomar cualquier número de argumentos (dependiendo de cómo esté definida la función). Hay dos maneras en las que podemos pasar múltiples argumentos.

Usar *args (Argumentos no claves)

# Function Defination
def myfunction(first_name, last_name, *args):
    print(first_name)
    print(last_name)
    for argument in args:
        print(argument)

# Calling the Function 
myfunction('Tim','White',999888999,30)

Producción:

Tim
White
999888999
30

Usar **kargs (Argumentos de palabra clave)

def myFunction(**kwargs):
    #printing all values which are passed in as an argument 
    for key, value in kwargs.items(): 
        print ("%s = %s" %(key, value)) 

# Calling the Function 
myFunction(first_name='Tim', last_name='White', mob=99999999, age='30')

Producción:

first_name = Tim
last_name = White
mob = 99999999
age = 30

Tanto *args como **kargs son argumentos de longitud variable que se utilizan para pasar un número variable de argumentos a una función.

Cuando creas una función, tienes que definir cuántos parámetros o argumentos tomará como entrada. Estos se llaman argumentos formales. Y siempre que llames a esa función, tienes que pasar algunos valores a esa función, y esos valores se llaman argumentos reales.

Hacer que los argumentos sean opcionales en Python

Digamos que tienes una función que toma tres argumentos o parámetros name, number y age como entrada.

# Function Defination
def personalDetails(name, number, age):
    print("This function takes 3 parameters as input")

Si quieres llamar a la función personalDetails, debes pasar los 3 parámetros como entrada a esa función.

def personalDetails(name, number, age):
    print("This function takes 3 parameters as input")
    print("Name: ",name)
    print("Number: ",number)
    print("Age: ", age)
    
# Calling the function
personalDetails('Adam', 987654321, 18)

Producción:

This function takes 3 parameters as input
Name: Adam
Number: 987654321
Age: 18

Aquí, mientras se llama a una función, si se omite u olvida pasar alguno de los parámetros, puede obtener un error (TypeError: personalDetails missing a required positional argument).

Si no quieres pasar tu Edad a la función anterior como argumento, puedes usar algo llamado argumento opcional. Puedes hacer cualquier número de argumentos o parámetros opcionales en python. Para hacer un argumento opcional, tienes que asignar algún valor por defecto a ese argumento.

En este caso, para hacer que el argumento age sea opcional, puedes añadir un valor por defecto al argumento age en la definición de la función para hacerlo opcional. En este caso, vamos a inicializarlo con 0 o cualquier otro valor que quieras. Ahora Python considerará este argumento como un argumento opcional. Así, aunque no pases ningún valor al parámetro age, la función funcionará, y utilizará el valor por defecto, que en este caso es 0.

def personalDetails(name, number, age = 0):
    print("Age is now an optional argument.")
    print("Age is: ",age)

# Calling the function
personalDetails('Sam', 123456789)

Producción:

Age is now an optional argument.
Age is: 0

Incluso si quieres especificar el valor del argumento age mientras llamas a la función personalDetails, puedes hacerlo. Y ahora se considerará el nuevo valor que has especificado en lugar del valor por defecto.

def personalDetails(name, number, age = 0):
    print("Age is now an optional argument.")
    print("Age is: ",age)

# Calling the function
personalDetails('Sam', 123456789, 25)

Resultado:

Age is now an optional argument.
Age is: 25

Conclusión

Cada vez que se inicializa un argumento con un valor por defecto, se le conoce como argumento por defecto. Esto eventualmente hace que ese argumento sea opcional también, ya que ahora no es obligatorio pasar un valor a ese argumento mientras se llama a la función. Esto se conoce como argumento opcional o parámetro opcional en Python.

Pero si has pasado algún valor al argumento opcional mientras llamas a la función, entonces la función tomará ese nuevo valor en lugar del valor por defecto.

Artículo relacionado - Python Function

  • Obtener el nombre de la función en Python
  • Pasar por referencia en Python