Ինչպես օգտագործել փոփոխական և հիմնաբառի փաստարկները Python-ում
Դարձրեք ձեր գործառույթներն ավելի ճկուն և հեշտ օգտագործվող՝ օգտագործելով ստանդարտ արգումենտների այս տատանումները:
Գոյություն ունեն երեք տեսակի փաստարկներ, որոնք Python ֆունկցիան կարող է ընդունել՝ ստանդարտ, փոփոխական (*args) և հիմնաբառ (**kwargs): Ստանդարտ արգումենտներն ամենապարզն են, բայց ունեն սահմանափակ գործառույթ: Մյուս կողմից, *args-ը և **kwargs-ը ձեզ հնարավորություն են տալիս ավելի ճկուն դարձնել ձեր գործառույթները՝ ընդունելով մուտքերի փոփոխական քանակ:
Ձեր ընտրած փաստարկների փոխանցման տեսակը կախված է ձեր գործառույթի բնույթից և ձեր նախընտրած ծրագրավորման ոճից:
Հիմնական գործառույթները Python-ում
Հասկանալու համար, թե ինչպես են աշխատում Python ֆունկցիաների երկու փոփոխական արգումենտները, անհրաժեշտ է հասկանալ, թե ինչու են դրանք առաջին հերթին գոյություն ունենալ: Պարզ ֆունկցիան հայտարարում է ֆիքսված թվով անանուն փաստարկներ, ինչպիսիք են.
def addnum(a, b, c):
return a + b + c
Այս ֆունկցիան լավ է աշխատում, բայց բարելավման տեղ կա: Ամենամեծ խնդիրն այն է, որ այն մշակում է միայն երկու փաստարկ, ուստի կարող է միայն երկու թիվ գումարել: Իսկ եթե ցանկանում եք ավելացնել երկու կամ չորս թիվ: Այս գործառույթը թույլ չի տա ձեզ դա անել: Ավելի կամ ավելի քիչ արգումենտներ փոխանցելը, քան գործառույթն ընդունում է, կհանգեցնի TypeError-ի:
Իհարկե, դուք կարող եք ստեղծել ավելի շատ գործառույթներ տարբեր թվով արգումենտներ ընդունելու համար: Բայց դա անհարմար է և ամենևին էլ լավ մասշտաբներ չի ունենա: Դուք նաև պետք է նոր գործառույթ ստեղծեք ամեն անգամ, երբ ցանկանում եք կարգավորել նոր թվով մուտքագրումներ:
Այստեղ են հայտնվում փոփոխական արգումենտները և հիմնաբառերի արգումենտները: Օգտագործելով *args և **kwargs, դուք կարող եք սահմանել ճկուն գործառույթներ, որոնք կարող են ընդունել փոփոխական թվով մուտքեր:
Ի՞նչ է *args-ը Python-ում:
Python-ում *args-ի հիմքում ընկած հիմնական գաղափարն այն է, որ թույլ տա ձեզ փոխանցել փոփոխական թվով մուտքեր ձեր ֆունկցիային: Սա օգտակար է տարբեր ծրագրերում: Օրինակ, մտածեք հաշվիչի ծրագրի մասին, որտեղ դուք ցանկանում եք օգտվողին հնարավորություն տալ ավելացնել երկու կամ ավելի թվեր և վերադարձնել գումարը:
Նշենք, որ args-ը պարզապես փոփոխականի անուն է. դա * է, որ կարևոր է: Դուք կարող եք օգտագործել ցանկացած վավեր անուն ձեր փոփոխական արգումենտի համար, քանի դեռ դուք ներառում եք *:
Ինչպես օգտագործել *args
Դուք կարող եք փոփոխել addnum ֆունկցիան՝ ընդունելու փոփոխական թվով մուտքագրումներ հետևյալ կերպ.
def addnum(*args):
total = 0
for num in args:
total = total + num
return total
Վերևի կոդի հատվածը օգտագործում է for հանգույց՝ մատակարարված մուտքերի միջոցով կրկնելու համար:
Այնուհետև կարող եք զանգահարել addnum ֆունկցիան փոփոխական արգումենտներով և այն կաշխատի առանց սխալի.
print(addnum(10, 1, 12, 12, 4, 54, 5)) ## returns 98
print(addnum(14, 54, 5)) # returns 73
print(addnum(10, 5)) # returns 15
Ի՞նչ է **kwargs-ը Python-ում:
Թեև և *args-ը և **kwargs-ը մեզ թույլ են տալիս ֆունկցիաներին փոխանցել մուտքերի փոփոխական քանակ, վերջինս հատուկ է հիմնաբառերի արգումենտներին: Եթե չգիտեք, հիմնաբառերի արգումենտները պարզապես շքեղ անուններ են անուն ունեցող փաստարկների համար:
**kwargs-ի մեկ այլ յուրահատուկ բան այն է, որ Python-ը արժեքը ներկայացնում է որպես բառարան:
Ինչպես օգտագործել **kwargs
Ինչպես *args-ը, կրկնակի աստղանիշը կարևոր մասն է. Դուք կարող եք օգտագործել ցանկացած բառ որպես պարամետրի անուն: Ահա մի օրինակ, թե ինչպես օգտագործել **kwargs Python-ում.
def weekly_attendance(**weekdays):
total_attendees = 0
for attendees in weekdays.values():
total_attendees = total_attendees + attendees
return total_attendees
print(weekly_attendance(monday = 265, tuesday = 698, wednesday = 365, thursday = 463, friday = 234)) # returns 2025
print(weekly_attendance(monday = 265, friday = 234)) # returns 499
print(weekly_attendance(wednesday = 365, thursday = 463, friday = 234)) # returns 1062
Վերևում գտնվող կոդի հատվածը նույնպես օգտագործում է for loop, բայց այս անգամ Python-ի ներկառուցված values() մեթոդով։ Այդ մեթոդը վերադարձնում է բառարանի բոլոր արժեքների դիտման օբյեկտը: Values() մեթոդը թույլ է տալիս առանց դժվարության անցնել Python բառարանը:
Օգտագործեք փոփոխական փաստարկներ՝ ձեր Python ֆունկցիաները ճկուն դարձնելու համար
Ֆունկցիայի արգումենտները հարմար են, բայց որոշ գործառույթներ կարող են օգուտ քաղել փոփոխական թվով արգումենտների ընդունումից: Անվանված հիմնաբառերի փաստարկները կարող են ձեր կոդը դարձնել ավելի ընթեռնելի և հեշտ օգտագործելի: Դուք պետք է ընդունեք Python-ի *args և **kwargs փաստարկները: Դրանք բավականին պարզ են օգտագործման մեջ, և դրանց միջոցով դուք կարող եք ավելի ճկուն դարձնել ձեր գործառույթներն ու ծրագրերը:
Հետևելով վերը նշված քայլերին և կոդի հատվածներին՝ մենք հուսով ենք, որ այժմ կարող եք օգտագործել փոփոխական հիմնաբառեր և ոչ հիմնաբառեր ձեր գործառույթների համար: