Šajā rakstā mēs apspriedīsim, kā Python novērst sintakses kļūdu, kas ir pozicionālais arguments, kas seko atslēgvārda argumentam.
Arguments ir vērtība, kas tiek nodrošināta funkcijai, kad izsaucat šo funkciju. Piemēram, skatiet tālāk redzamo programmu -
Python
# function> def> calculate_square(num):> >return> num>*> num> > > # call the function> result>=> calculate_square(>10>)> print>(result)> |
kā izslēgt izstrādātāja režīmu Android
>
>Izvade
100>
The aprēķināt_kvadrāts() funkcija uzņem argumentu uz viena kas ir vesels skaitlis vai decimāldaļa ievade, aprēķina skaitļa kvadrātu un atgriež vērtību.
Atslēgvārdi un pozīcijas argumenti Python
Ir divu veidu argumenti, proti, atslēgvārdi un pozicionālie argumenti. Kā norāda nosaukums, atslēgvārda argumentu identificē funkcija, kuras pamatā ir kāda atslēga, savukārt pozicionālais arguments tiek identificēts, pamatojoties uz tā pozīciju funkcijas definīcijā. Apskatīsim to ar piemēru.
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>)> |
>
>
Izvade:
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>
Paskaidrojums:
- Pirmajā funkcijas izsaukumā mēs nodrošinājām 3 argumentus ar jebkuru atslēgvārdu. Python interpretēts tādā secībā, kā tie ir definēti funkcijā, kas ņem vērā šo atslēgvārdu pozīciju.
- Otrajā funkcijas izsaukumā mēs nodrošinājām 2 argumentus, taču izvade joprojām tiek rādīta, jo mēs nodrošinājām 2 pozīcijas argumentus un funkcijai ir noklusējuma vērtība galīgajam argumentam c . Tātad galīgajam argumentam tiek ņemta vērā noklusējuma vērtība.
- Trešajā funkcijas izsaukumā tiek nodrošināti trīs atslēgvārdu argumenti. Ieguvums, sniedzot šo atslēgvārdu argumentu, ir tāds, ka jums nav jāatceras pozīcijas, bet tikai atslēgvārdi, kas nepieciešami funkcijas izsaukšanai. Šos atslēgvārdus var norādīt jebkurā secībā, taču funkcija tos uztvers kā atslēgu un vērtību pārus, nevis to nodošanas secībā.
Sintakses kļūda: pozicionālais arguments seko atslēgvārda argumentam
Iepriekš minētajos 3 gadījumos mēs esam redzējuši, kā python var interpretēt argumentu vērtības, kas tiek nodotas funkcijas izsaukšanas laikā. Tagad apskatīsim tālāk sniegto piemēru, kas noved pie a Sintakses kļūda .
Python
vektora c++ lielums
# 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>)> |
>
>
Izvade:
File '', line 7 foo(a=2, c=3, 9) ^ SyntaxError: positional argument follows keyword argument>
Paskaidrojums:
Šajā piemērā kļūda radās tāpēc, ka funkcijas izsaukšanas laikā esam nodevuši argumentus. Kļūdas pozicionālais arguments seko atslēgvārda argumentam nozīmē, ka, ja funkcijas izsaukumā tiek izmantots kāds atslēgvārda arguments, tam vienmēr ir jāseko atslēgvārdu argumentiem. Pozicionālos argumentus var uzrakstīt sākumā, pirms tiek nodots jebkurš atslēgvārda arguments. Šeit, a=2 un c=3 ir atslēgvārdu argumenti. Trešais arguments 9 ir pozicionāls arguments. Python to nevar interpretēt kā to, kurai atslēgai ir kāda vērtība. Python darbības veids šajā ziņā ir tāds, ka tas vispirms kartē pozicionālo argumentu un pēc tam jebkuru atslēgvārda argumentu, ja tāds ir.
Kā izvairīties no kļūdas – Secinājums
