Argumentos posicionales vs palabras clave

May 16, 2021
admin

Artículo relacionado:

  • Funciones
  • Pasar una función como argumento
  • Asteriscos en Python

Transcript:

Hablemos de los dos tipos de argumentos que puedes usar al llamar a una función:argumentos posicionales y argumentos con nombre (a.k.a. argumentos de palabra clave).

Agumentos posicionales

Cuando se llama a la función incorporada print, se puede pasar cualquier número de argumentos posicionalmente.Estamos pasando cuatro argumentos posicionales aquí:

>>> print(2, 1, 3, 4)2 1 3 4

Los llamamos argumentos posicionales porque su posición es importante.El orden de estos argumentos es significativo: el primer argumento se imprime primero; el último se imprime al final.

Argumentos de palabra clave (también conocidos como argumentos con nombre)

La función printtambién acepta algunos argumentos como argumentos de palabra clave.

La función print acepta un argumento opcional sep (que por defecto es un carácter de espacio).

>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4

Ese argumento sep define el separador que debe imprimirse entre cada uno de los argumentos posicionales dados a print.

También hay un argumento opcional de palabra clave end.El argumento end es por defecto un carácter de nueva línea:

>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4

Pero podemos poner algunos signos de exclamación en el argumento end (antes de una nueva línea) para imprimir signos de exclamación al final:

>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!

El orden de los argumentos de las palabras clave no importa

El orden de los argumentos sep y end de la función print no importa realmente.

>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!

El orden no importa con estos porque no son argumentos posicionales: son argumentos con nombre.

Los argumentos posicionales tienen comas entre sus valores.

>>> print(2, 1, 3, 4)2 1 3 4

Los argumentos de palabra clave (a.k.a. argumentos con nombre) tienen un nombre y un signo de igualdad además de esos valores y comas.

>>> print(2, 1, 3, 4, sep=',', end='!\n')2,1,3,4!

Los argumentos de palabra clave deben ir después de cualquier argumento posicional.Más allá de eso, la posición de los argumentos de palabra clave no importa en absoluto: es el nombre lo que importa, no la posición.

Usar argumentos de palabra clave en lugar de argumentos posicionales

Los argumentos de palabra clave no son sólo útiles para las funciones que aceptan cualquier número de argumentos posicionales (como print).Puedes pasar argumentos de palabra clave a casi cualquier función en Python.

Por ejemplo, la función incorporada sum acepta un primer argumento:

>>> sum()10

Pero también acepta un segundo argumento, que por defecto es cero:

>>> sum(, 0)10

Si cambiamos ese segundo argumento a 1, veremos que éste es el valor inicial de la suma devuelta:

>>> sum(, 1)11

Preferiría ver esta función llamada así:

>>> sum(, start=1)11

Estamos pasando un argumento posicional y un argumento de palabra clave.

Ese start=1 funciona con sum porque start es el nombre de ese argumento.En la documentación de la función sum dice que el segundo argumento que se llama start:

>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.

Así que cuando trabajas con argumentos con nombre (también conocidos como argumentos de palabra clave) el nombre del argumento realmente importa¡ Mientras que cuando trabajas con argumentos posicionales, es la posición lo que es significativo.

Resumen

Cuando llamamos a una función en Python, podemos pasar dos tipos diferentes de argumentos:

  1. argumentos posicionales
  2. argumentos con nombre (a.k.a. argumentos de palabra clave)

Los argumentos con nombre a veces pueden hacer que tu código sea un poco más descriptivo porque has dado un nombre a un objeto cuyo uso podría no estar claro de otra manera simplemente por su posición en una llamada a una función.

¿Quieres ver más temas de Python explicados?

¡Hola amigable visitante de la web! 👋

Esta página es parte de Python Morsels, un servicio online de desarrollo de habilidades en Python.

La mejor manera de aprender es haciendo. En el caso de Python eso significa escribir código Python. Si quieres mejorar tus habilidades con Python cada semana, prueba Python Morsels introduciendo tu correo electrónico a continuación para crear una cuenta.

Las páginas de temas de Python Morsels son gratuitas y el primer mes de ejercicios también es gratuito. No necesitas introducir datos de pago para registrarte.

Puedes encontrar explicaciones de muchos otros temas de Python registrándote a continuación.

Al registrarte, aceptas la política de privacidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.