V tomto článku budeme diskutovať o tom, ako opraviť chybu syntaxe, ktorá spočíva v tom, že pozičný argument nasleduje po argumente kľúčového slova v Pythone
Argument je hodnota poskytnutá funkcii, keď túto funkciu zavoláte. Pozrite si napríklad program nižšie –
Python
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
reťazec na char v jazyku Java
>
>Výkon
100>
The vypočítať_štvorec() funkcia prijíma argument na jeden čo je celočíselný alebo desiatkový vstup, vypočíta druhú mocninu čísla a vráti hodnotu.
Kľúčové slová a pozičné argumenty v Pythone
Existujú dva druhy argumentov, a to kľúčové slovo a pozičné. Ako už názov napovedá, argument kľúčového slova je identifikovaný funkciou založenou na nejakom kľúči, zatiaľ čo pozičný argument je identifikovaný na základe jeho pozície v definícii funkcie. Poďme sa na to pozrieť na príklade.
Python
# 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>)> |
>
>
Výkon:
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>
Vysvetlenie:
- Počas prvého volania funkcie sme poskytli 3 argumenty s ľubovoľným kľúčovým slovom. Python interpretovaný v poradí, ako boli definované vo funkcii, ktorá zohľadňuje pozíciu týchto kľúčových slov.
- V druhom volaní funkcie sme poskytli 2 argumenty, ale výstup sa stále zobrazuje, pretože sme poskytli 2 pozičné argumenty a funkcia má predvolenú hodnotu pre posledný argument c . Takže berie do úvahy predvolenú hodnotu pre konečný argument.
- V treťom volaní funkcie sú poskytnuté tri argumenty kľúčového slova. Výhodou poskytnutia tohto argumentu kľúčového slova je, že si nemusíte pamätať pozície, ale len kľúčové slová, ktoré sú potrebné pre volanie funkcie. Tieto kľúčové slová môžu byť poskytnuté v ľubovoľnom poradí, ale funkcia ich bude brať ako páry kľúč – hodnota a nie v poradí, v akom sa odovzdávajú.
SyntaxError: pozičný argument nasleduje po argumente kľúčového slova
Vo vyššie uvedených 3 prípadoch sme videli, ako môže python interpretovať hodnoty argumentov, ktoré sa odovzdávajú počas volania funkcie. Teraz sa pozrime na nižšie uvedený príklad, ktorý vedie k a Chyba syntaxe .
Python
markdown s obrázkami
# 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>)> |
>
>
Výkon:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Vysvetlenie:
V tomto príklade sa chyba vyskytla v dôsledku spôsobu, akým sme odovzdali argumenty počas volania funkcie. Chybový pozičný argument nasleduje za argumentom kľúčového slova znamená, že ak sa vo volaní funkcie použije nejaký argument kľúčového slova, vždy by mal nasledovať argument kľúčového slova. Pozičné argumenty môžu byť napísané na začiatku pred odovzdaním akéhokoľvek argumentu kľúčového slova. Tu, a=2 a c=3 sú argumenty kľúčových slov. 3. argument 9 je pozičný argument. Toto nemôže python interpretovať, pokiaľ ide o to, ktorý kľúč má akú hodnotu. Python v tomto ohľade funguje tak, že najprv zmapuje pozičný argument a potom akýkoľvek argument kľúčového slova, ak je prítomný.
Ako sa vyhnúť chybe – záver
