Tutorial de Python - Argumentos de función

Jinku Hu 30 enero 2023
  1. Argumentos de funciones Python
  2. Función Python Argumentos Tipos
Tutorial de Python - Argumentos de función

En esta sección, aprenderá los argumentos de las funciones Python y sus diferentes tipos como los argumentos por defecto, los argumentos de palabras clave y los argumentos arbitrarios.

Argumentos de funciones Python

Los argumentos de la función son los valores sobre los que se realizan las operaciones dentro de la función.

Cuando se define una función con un número determinado de argumentos, se debe llamar esta función particular pasando ese número determinado de argumentos.

Si pasas más o menos argumentos de los especificados en la definición de la función, obtendrás un TypeError.

Considera el código que se muestra a continuación:

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language("Python", 1)
language("Java", 2)
Programming language 1 is: Python
Programming language 2 is: Java

La función language tiene dos argumentos. Y si llamas a la función con un número diferente de argumentos, tendrás un error como el que se muestra a continuación:

>>> language('Python')

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    language('Python')
TypeError: language() takes exactly 2 arguments (1 given)

>>> language(2, 'Python', 'Java')

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    language(2, 'Python', 'Java')
TypeError: language() takes exactly 2 arguments (3 given)

Función Python Argumentos Tipos

La función anterior tiene un número fijo de argumentos. Y la función también puede tener argumentos variables.

Hay tres formas diferentes de pasar argumentos variables a una función. Ahora vamos a repasarlas todas.

Argumentos por defecto de la función Python

En una función, los argumentos pueden tener valores de propuesta que se asignan en la definición de la función. Si los argumentos tienen un valor por defecto, entonces es opcional pasar valores para esos argumentos:

Esto se demuestra en el siguiente ejemplo:

def language(p="C++", n=3):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language()
Programming language 3 is: C++

Usted puede ver aquí que no se pasa ningún argumento pero el programa todavía funciona bien; porque se proporcionan valores por defecto para los argumentos. Si pasas valores para cualquiera de los argumentos, el valor por defecto será sobreescrito.

Argumentos de palabras clave de la función Python

Normalmente, se pasan múltiples argumentos en la misma secuencia que se define en la definición de la función. Pero si utilizas argumentos de palabras clave puedes cambiar la posición de los argumentos.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language(p="C++", n=3)
Programming language 3 is: C++

También puede cambiar la posición de los argumentos si utiliza argumentos de palabra clave para asignar valores explícitamente a los argumentos específicos.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language(n=3, p="C++")
Programming language 3 is: C++

Argumentos arbitrarios de la función Python

Se utilizan argumentos arbitrarios cuando no se sabe de antemano cuántos argumentos se deben pasar.

Una función arbitraria se denota con un asterisco * antes del nombre del argumento. Pasa los argumentos no clave como una tupla a la función.

def language(*args):
    """Demo function of arbitray arguments"""
    for i in args:
        print("Programming language:", i)


language("Java", "C++", "R", "Kotlin")
Programming language: Java
Programming language: C++
Programming language: R
Programming language: Kotlin

La función se llama pasando múltiples argumentos. Estos argumentos se convierten en una tupla antes de que la función sea llamada.

El doble asterisco **kwargs es el modismo para pasar los argumentos de palabras clave arbitrarias a la función. Por ejemplo,

def language(**kwargs):
    """Demo funciton of arbitrary keyword arguments"""
    for a in kwargs:
        print(a, kwargs[a])


language(country="NL", code="+31")
country NL
code +31

Los argumentos de esta palabra clave se pasan como un diccionario cuyas claves son palabras clave y los valores son valores correspondientes. Como en el ejemplo anterior, los argumentos pasados se convierten en un diccionario {'country': "NL", 'code': "+31"}

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook