logo

Cómo solucionarlo: SyntaxError: el argumento posicional sigue al argumento de la palabra clave en Python

En este artículo, discutiremos cómo corregir el error de sintaxis que indica que el argumento posicional sigue al argumento de la palabra clave en Python.

Un argumento es un valor proporcionado a una función cuando llamas a esa función. Por ejemplo, mire el siguiente programa:



Pitón






# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)>



cadena de análisis de Java a int
>

>

Producción

100>

El calcular_cuadrado() la función toma un argumento en uno que es una entrada entera o decimal, calcula el cuadrado del número y devuelve el valor.

Palabras clave y argumentos posicionales en Python

Hay dos tipos de argumentos: palabras clave y posicionales. Como sugiere el nombre, el argumento de la palabra clave se identifica mediante una función basada en alguna clave, mientras que el argumento posicional se identifica según su posición en la definición de la función. Echemos un vistazo a esto con un ejemplo.

Pitón




# function> def> foo(a, b, c>=>10>):> >print>(>'a ='>, a)> >print>(>'b ='>, b)> >print>(>'c ='>, c)> > > # call the functions> print>(>'Function Call 1'>)> foo(>2>,>3>,>8>)> print>(>'Function Call 2'>)> foo(>2>,>3>)> print>(>'Function Call 3'>)> foo(a>=>2>, c>=>3>, b>=>10>)>

>

>

Producción:

Function Call 1 a = 2 b = 3 c = 8 Function Call 2 a = 2 b = 3 c = 10 Function Call 3 a = 2 b = 10 c = 3>

Explicación:

  1. Durante la primera llamada a la función, proporcionamos 3 argumentos con cualquier palabra clave. Python interpreta en el orden en que se han definido en la función que considera la posición de estas palabras clave.
  2. En la segunda llamada a la función, proporcionamos 2 argumentos, pero aún así se muestra el resultado porque proporcionamos 2 argumentos posicionales y la función tiene un valor predeterminado para el argumento final. C . Por lo tanto, tiene en cuenta el valor predeterminado para el argumento final.
  3. En la tercera llamada a la función, se proporcionan tres argumentos de palabras clave. La ventaja de proporcionar este argumento de palabra clave es que no es necesario recordar las posiciones, sino sólo las palabras clave necesarias para la llamada a la función. Estas palabras clave se pueden proporcionar en cualquier orden, pero la función las tomará como pares clave-valor y no en el orden en que se pasan.

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

En los 3 casos anteriores, hemos visto cómo Python puede interpretar los valores de los argumentos que se pasan durante una llamada a una función. Ahora, consideremos el siguiente ejemplo que conduce a una Error de sintaxis .

Pitón


función lambda java



# function definition> def> foo(a, b, c>=>10>):> >print>(>'a ='>, a)> >print>(>'b ='>, b)> >print>(>'c ='>, c)> > ># call the function> print>(>'Function Call 4'>)> foo(a>=>2>, c>=>3>,>9>)>

>

>

Producción:

File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>

Explicación:

En este ejemplo, el error se produjo debido a la forma en que pasamos los argumentos durante la llamada a la función. El argumento posicional de error sigue al argumento de palabra clave significa que si se utiliza algún argumento de palabra clave en la llamada a la función, siempre debe ir seguido de argumentos de palabra clave. Los argumentos posicionales se pueden escribir al principio antes de pasar cualquier argumento de palabra clave. Aquí, un=2 y c=3 son argumentos de palabras clave. El tercer argumento 9 es un argumento posicional. Python no puede interpretar esto en cuanto a qué clave tiene qué valor. La forma en que Python funciona a este respecto es que primero asignará el argumento posicional y luego cualquier argumento de palabra clave, si está presente.

Cómo evitar el error – Conclusión