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

Argumentos de la función de Python

Argumentos de la función de Python

En Python, puede definir una función que tome un número variable de argumentos. En este artículo, aprenderá a definir tales funciones utilizando argumentos predeterminados, de palabras clave y arbitrarios.

Video:Argumentos de funciones de Python:posicionales, palabras clave y predeterminados

Argumentos

En el tema de funciones definidas por el usuario, aprendimos sobre cómo definir una función y llamarla. De lo contrario, la llamada a la función dará como resultado un error. Aquí hay un ejemplo.

def greet(name, msg):
    """This function greets to
    the person with the provided message"""
    print("Hello", name + ', ' + msg)

greet("Monica", "Good morning!")

Salida

Hello Monica, Good morning!

Aquí, la función greet() tiene dos parámetros.

Como hemos llamado a esta función con dos argumentos, se ejecuta sin problemas y no obtenemos ningún error.

Si lo llamamos con un número diferente de argumentos, el intérprete mostrará un mensaje de error. A continuación se muestra una llamada a esta función con uno y sin argumentos junto con sus respectivos mensajes de error.

>>> greet("Monica")    # only one argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet()    # no arguments
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

Argumentos de funciones variables

Hasta ahora, las funciones tenían un número fijo de argumentos. En Python, hay otras formas de definir una función que puede tomar un número variable de argumentos.

A continuación se describen tres formas diferentes de este tipo.

Argumentos predeterminados de Python

Los argumentos de función pueden tener valores predeterminados en Python.

Podemos proporcionar un valor predeterminado a un argumento usando el operador de asignación (=). Aquí hay un ejemplo.

def greet(name, msg="Good morning!"):
    """
    This function greets to
    the person with the
    provided message.

    If the message is not provided,
    it defaults to "Good
    morning!"
    """

    print("Hello", name + ', ' + msg)


greet("Kate")
greet("Bruce", "How do you do?")

Salida

Hello Kate, Good morning!
Hello Bruce, How do you do?

En esta función, el parámetro name no tiene un valor predeterminado y se requiere (obligatorio) durante una llamada.

Por otro lado, el parámetro msg tiene un valor predeterminado de "Good morning!" . Por lo tanto, es opcional durante una llamada. Si se proporciona un valor, sobrescribirá el valor predeterminado.

Cualquier número de argumentos en una función puede tener un valor predeterminado. Pero una vez que tenemos un argumento predeterminado, todos los argumentos a su derecha también deben tener valores predeterminados.

Esto significa que los argumentos no predeterminados no pueden seguir a los argumentos predeterminados. Por ejemplo, si hubiéramos definido el encabezado de la función anterior como:

def greet(msg = "Good morning!", name):

Obtendríamos un error como:

SyntaxError: non-default argument follows default argument

Argumentos de palabras clave de Python

Cuando llamamos a una función con algunos valores, estos valores se asignan a los argumentos según su posición.

Por ejemplo, en la función anterior greet() , cuando lo llamamos como greet("Bruce", "How do you do?") , el valor "Bruce" se asigna al argumento nombre y de manera similar "How do you do?" a mensaje .

Python permite llamar a funciones usando argumentos de palabras clave. Cuando llamamos funciones de esta manera, el orden (posición) de los argumentos se puede cambiar. Las siguientes llamadas a la función anterior son todas válidas y producen el mismo resultado.

# 2 keyword arguments
greet(name = "Bruce",msg = "How do you do?")

# 2 keyword arguments (out of order)
greet(msg = "How do you do?",name = "Bruce") 

1 positional, 1 keyword argument
greet("Bruce", msg = "How do you do?")           

Como podemos ver, podemos mezclar argumentos posicionales con argumentos de palabras clave durante una llamada de función. Pero debemos tener en cuenta que los argumentos de palabras clave deben seguir a los argumentos posicionales.

Tener un argumento posicional después de los argumentos de palabras clave dará como resultado errores. Por ejemplo, la llamada de función de la siguiente manera:

greet(name="Bruce","How do you do?")

Dará como resultado un error:

SyntaxError: non-keyword arg after keyword arg

Argumentos arbitrarios de Python

A veces, no sabemos de antemano la cantidad de argumentos que se pasarán a una función. Python nos permite manejar este tipo de situaciones a través de llamadas a funciones con un número arbitrario de argumentos.

En la definición de la función, usamos un asterisco (*) antes del nombre del parámetro para indicar este tipo de argumento. Aquí hay un ejemplo.

def greet(*names):
    """This function greets all
    the person in the names tuple."""

    # names is a tuple with arguments
    for name in names:
        print("Hello", name)


greet("Monica", "Luke", "Steve", "John")

Salida

Hello Monica
Hello Luke
Hello Steve
Hello John

Aquí, hemos llamado a la función con múltiples argumentos. Estos argumentos se envuelven en una tupla antes de pasar a la función. Dentro de la función, usamos un for bucle para recuperar todos los argumentos.


python

  1. Tipos de datos de Python
  2. Operadores de Python
  3. Declaración de paso de Python
  4. Python Anónimo/Función Lambda
  5. Diccionario de Python
  6. Generadores de Python
  7. Cierres Python
  8. Decoradores de pitón
  9. Python String strip() Función con EJEMPLO
  10. Funciones Python Lambda con EJEMPLOS
  11. Función Python abs():Ejemplos de valores absolutos