Como corrigir: syntaxerror: argumento posicional segue argumento de palavra-chave


Um erro que você pode encontrar em Python é:

 SyntaxError : positional argument follows keyword argument

Este erro ocorre quando você usa um argumento posicional em uma função depois de usar um argumento de palavra-chave .

Aqui está a diferença entre os dois:

Argumentos posicionais são aqueles que não possuem uma “palavra-chave” à sua frente.

  • Exemplo: minha_função(2, 2)

Argumentos de palavra-chave são aqueles que possuem uma “palavra-chave” na frente deles.

  • Exemplo: minha_função(a=2, b=2)

Se você usar um argumento posicional após um argumento de palavra-chave, o Python gerará um erro.

  • Exemplo: minha_função(a=2, 2)

O exemplo a seguir mostra como esse erro pode ocorrer na prática.

Exemplo: um argumento posicional segue um argumento de palavra-chave

Suponha que temos a seguinte função em Python que multiplica dois valores e depois divide por um terço:

 def do_stuff (a,b):
return a*b/c

Os exemplos a seguir mostram maneiras válidas e inválidas de usar esta função:

Maneira válida nº 1: todos os argumentos posicionais

O código a seguir mostra como usar nossa função com todos os argumentos posicionais:

 do_stuff ( 4,10,5 )

8.0

Nenhum erro é gerado porque o Python sabe exatamente quais valores usar para cada argumento da função.

Método válido nº 2: todos os argumentos de palavras-chave

O código a seguir mostra como usar nossa função com todos os argumentos de palavras-chave:

 do_stuff(a= 4 , b= 10 , c= 5 )

8.0

Novamente, nenhum erro é gerado porque o Python sabe exatamente quais valores usar para cada argumento da função.

Método válido nº 3: argumentos posicionais antes dos argumentos de palavras-chave

O código a seguir mostra como usar nossa função com argumentos posicionais usados antes de argumentos de palavras-chave:

 do_stuff( 4 ,b= 10 ,c= 5 )

8.0

Nenhum erro é gerado porque Python sabe que o valor 4 deve ser atribuído ao argumento an .

Maneira inválida: argumentos posicionais após argumentos de palavras-chave

O código a seguir mostra como podemos tentar usar a função com argumentos posicionais usados após os argumentos da palavra-chave:

 do_stuff(a= 4 , 10 , 5 )

SyntaxError : positional argument follows keyword argument

Um erro é gerado porque usamos argumentos posicionais após argumentos de palavras-chave.

Especificamente, o Python não sabe se os valores 10 e 5 devem ser atribuídos aos argumentos b ou c , portanto, não consegue executar a função.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *