argumentos posicionales de python

Funciones y métodos de Python

En Python , hay dos tipos de argumentos: argumentos < / a>. Estos argumentos deben aparecer en un orden particular, de lo contrario, el intérprete de Python devuelve un error.

En esta guía, vamos a hablar sobre el & ldquo; argumento posicional sigue al argumento de palabra clave & rdquo; error y por qué se plantea. Veremos un fragmento de código de ejemplo con este error para que podamos ver cómo resolverlo.

¡Comencemos!




El problema: posicional el argumento sigue al argumento de la palabra clave

Echemos un vistazo a nuestro error completo:

 SyntaxError: el argumento posicional sigue al argumento de la palabra clave 

Al igual que el idioma inglés, los lenguajes de programación tienen sus propias reglas. Estas reglas se conocen como sintaxis. Nuestro error es un error de sintaxis, lo que significa que no hemos seguido una de las reglas que rigen cómo escribir un código Python.

La siguiente parte de nuestro error nos dice qué está causando este error. . En este caso, nuestro código debe tener un argumento posicional que aparezca después de un argumento de palabra clave.

Los argumentos posicionales son argumentos que aparecen en sus respectivas posiciones:

 def add_numbers (a, b): return a + b Vamos a llamar a esto función: add_numbers (2, 3) 

& ldquo; a & rdquo; y & ldquo; b & rdquo; se convierten en variables dentro de nuestra función. Este código funciona porque hemos especificado dos argumentos posicionales. & ldquo; a & rdquo; es igual a 2 y & ldquo; b & rdquo; es igual a tres. También podemos especificar estos argumentos como argumentos de palabras clave:

El 81% de los participantes dijeron que se sentían más seguros sobre sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy.

El graduado promedio de bootcamp pasó menos de seis meses en la transición de carrera, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Sin embargo, no podemos especificar un argumento posicional primero y luego cambie a la sintaxis de la palabra clave.

Esto se debe a que Python tiene una función especial llamada * args que procesa múltiples argumentos en una función. Considere este código:

 def show_users (a, b, * args): print (a, b, * args) 

Este código usa * args. Esta palabra clave representa un número variable de argumentos. Podemos pasar tantos argumentos a nuestra función show_users () como queramos:

 show_users ("Alex", "Peter", "Violet'," Julie ") 

Nuestro código devuelve: Alex Peter Violet Julie


Nuestros dos primeros argumentos, "a" y "b", tienen los valores "Alex" y "Peter", respectivamente.

Esto es porque si usa sintaxis posicional, los argumentos se asignan en el orden en que se pasan. Los últimos argumentos aparecen en el orden en que se indican porque * args representa una cantidad desconocida de argumentos adicionales.




Un ejemplo Situación

Echemos un vistazo a un fragmento de código que experimenta este error:

Esta función acepta dos argumentos: ensaladas y pizzas. Nuestra función imprime cada ensalada en el menú de ensaladas y cada pizza en el menú de pizzas en la consola.

Llamemos a nuestra función:

 ensaladas = ["Ensalada de atún", "Ensalada de lechuga y mango", "Gr eek Salad "] pizzas = [" Veggie Supreme "," Jamón y piña "," Pollo BBQ "] print_menu (pizzas = pizzas, ensaladas) 

Nuestro código regresa:

 Archivo "main.py", línea 13 print_menu (pizzas = pizzas, ensaladas) ^ SyntaxError: el argumento posicional sigue al argumento de la palabra clave 

Hay un error en nuestro código, como esperábamos. Arreglemoslo.




La solución

Para resolver este problema, debemos asegurarnos de que todos los argumentos posicionales estén antes de los argumentos de palabras clave. Cambiemos la forma en que llamamos a nuestra función para reflejar esta regla:

 print_menu (ensaladas, pizzas) 

Hemos especificado dos argumentos posicionales: ensaladas y pizzas. Alternativamente, podríamos especificar & ldquo; pizzas & rdquo; como argumento de palabra clave después de & ldquo; ensaladas & rdquo ;:

 print_menu (ensaladas, pizzas = pizzas) 

En este ejemplo, no es necesario agregar ningún argumento de palabra clave porque no estamos usando el método * args. Dicho esto, agregar argumentos de palabras clave puede hacer que el código sea más legible según la cantidad de valores que se pasan a una función.

Ejecutemos nuestro código con esta llamada de función revisada:

 Menú de ensaladas Ensalada de atún Ensalada de lechuga y mango Ensalada griega Menú de pizza Veggie Supreme Jamón y piña Pollo BBQ 

Nuestro código imprime con éxito nuestras dos listas de Python.





Conclusión

Los argumentos posicionales deben aparecer antes de un argumento de palabra clave en Python. Esto se debe a que Python interpreta los argumentos posicionales en el orden en que aparecen. Luego, interpreta los argumentos de palabras clave que se han especificado.

Ahora está listo para resolver el error & ldquo; argumento posicional sigue al argumento de palabra clave & rdquo; como un experto desarrollador de Python !

" Career Karma entró en mi vida cuando más lo necesitaba y rápidamente me ayudó a emparejarme con un bootcamp. ¡Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software en Rockbot

< button> Find Your Bootcamp Match



argumentos posicionales de python: StackOverflow Questions

Tutorials