Oplossing: syntaxisfout: positioneel argument volgt trefwoordargument


Een fout die je in Python tegen kunt komen is:

 SyntaxError : positional argument follows keyword argument

Deze fout treedt op wanneer u een positioneel argument in een functie gebruikt nadat u een trefwoordargument hebt gebruikt.

Hier is het verschil tussen de twee:

Positionele argumenten zijn argumenten waarvoor geen ‘sleutelwoord’ staat.

  • Voorbeeld: mijn_functie(2, 2)

Zoekwoordargumenten zijn argumenten waarvoor een ‘trefwoord’ staat.

  • Voorbeeld: mijn_functie(a=2, b=2)

Als je een positioneel argument gebruikt na een trefwoordargument, zal Python een foutmelding genereren.

  • Voorbeeld: mijn_functie(a=2, 2)

Het volgende voorbeeld laat zien hoe deze fout in de praktijk kan optreden.

Voorbeeld: Een positioneel argument volgt op een trefwoordargument

Stel dat we in Python de volgende functie hebben die twee waarden vermenigvuldigt en vervolgens door een derde deelt:

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

De volgende voorbeelden tonen geldige en ongeldige manieren om deze functie te gebruiken:

Geldige manier #1: alle positionele argumenten

De volgende code laat zien hoe u onze functie kunt gebruiken met alle positionele argumenten:

 do_stuff ( 4,10,5 )

8.0

Er worden geen fouten gegenereerd omdat Python precies weet welke waarden hij voor elk functieargument moet gebruiken.

Geldige methode #2: alle zoekwoordargumenten

De volgende code laat zien hoe u onze functie kunt gebruiken met alle trefwoordargumenten:

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

8.0

Opnieuw worden er geen fouten gegenereerd omdat Python precies weet welke waarden hij voor elk functieargument moet gebruiken.

Geldige methode #3: positionele argumenten vóór zoekwoordargumenten

De volgende code laat zien hoe u onze functie kunt gebruiken met positionele argumenten die vóór trefwoordargumenten worden gebruikt:

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

8.0

Er wordt geen fout gegenereerd omdat Python weet dat de waarde 4 aan het argument an moet worden toegewezen.

Ongeldige manier: positionele argumenten na trefwoordargumenten

De volgende code laat zien hoe we kunnen proberen de functie te gebruiken met positionele argumenten die na de trefwoordargumenten worden gebruikt:

 do_stuff(a= 4 , 10 , 5 )

SyntaxError : positional argument follows keyword argument

Er wordt een fout gegenereerd omdat we positionele argumenten hebben gebruikt na trefwoordargumenten.

Concreet weet Python niet of de waarden 10 en 5 aan de argumenten b of c moeten worden toegewezen, waardoor hij de functie niet kan uitvoeren.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:

Hoe KeyError in Panda’s te repareren
Oplossing: ValueError: Kan float NaN niet naar int converteren
Oplossing: ValueError: Operanden konden niet worden uitgezonden met vormen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert