У овом чланку ћемо научити о Питхон * аргс и ** кваргс, њиховој употреби и функцијама са примерима.
У програмирању дефинишемо функцију за израду кода за вишекратну употребу који изводи сличне операције. Да бисмо извршили ту операцију, позивамо функцију са одређеном вредношћу, та вредност се у Питхону назива аргументом функције.
Препоручили бисмо вам да прочитате аргументе функције Питхон и функције Питхон.
Претпоставимо да дефинишемо функцију за сабирање 3 броја.
Пример 1: Функција додавања 3 броја
def adder(x,y,z): print("sum:",x+y+z) adder(10,12,13)
Када покренемо горњи програм, излаз ће бити
збир: 35
У горњем програму имамо adder()
функцију са три аргумента к, и и з. Када проследимо три вредности док позивамо adder()
функцију, добијамо збир 3 броја као излаз.
Погледајмо шта се дешава када у adder()
функцији проследимо више од 3 аргумента .
def adder(x,y,z): print("sum:",x+y+z) adder(5,10,15,20,25)
Када покренемо горњи програм, излаз ће бити
ТипеЕррор: аддер () узима 3 позицијска аргумента, али је дато 5
У горњем програму смо adder()
функцији проследили 5 аргумената уместо 3 аргумента због којих смо добили TypeError
.
Увод у * аргс и ** кваргс у Питхону
У Питхону можемо променљивом броју аргумената проследити функцију помоћу посебних симбола. Постоје два посебна симбола:
- * аргс (Аргументи који нису кључне речи)
- ** кваргс (Аргументи кључних речи)
* Аргс и ** кваргс користимо као аргумент када нисмо сигурни у број аргумената који ће се проследити у функцијама.
Питхон * аргс
Као у горњем примеру, нисмо сигурни у број аргумената који се могу проследити функцији. Питхон има * аргс који нам омогућавају да пренесемо променљиви број аргумената који нису кључне речи да би функционисали.
У функцији бисмо требали користити звјездицу *
прије имена параметра за просљеђивање аргумената промјенљиве дужине. Аргументи се просљеђују као скуп и ови просљеђени аргументи чине кору унутар функције с истим именом као параметар искључујући звјездицу *
.
Пример 2: Коришћење * аргс за прослеђивање аргумената променљиве дужине функцији
def adder(*num): sum = 0 for n in num: sum = sum + n print("Sum:",sum) adder(3,5) adder(4,5,6,7) adder(1,2,3,5,6)
Када покренемо горњи програм, излаз ће бити
Збир: 8 Збир: 22 Збир: 17
У горе наведеном програму користили смо * нум као параметар који нам омогућава да adder()
функцији проследимо листу аргумената променљиве дужине . Унутар функције имамо петљу која додаје прослеђени аргумент и исписује резултат. Као аргумент функцији проследили смо 3 различита корпица променљиве дужине.
Питхон ** кваргс
Питхон прослеђује аргумент не-кључне речи променљиве дужине функцији користећи * аргс, али не можемо то да користимо за прослеђивање аргумента кључне речи. За овај проблем Питхон је добио решење звано ** кваргс, које нам омогућава да функцији проследимо променљиву дужину аргумената кључне речи.
У функцији користимо двоструку звездицу **
испред имена параметра да означимо ову врсту аргумента. Аргументи се предају као речник и ови аргументи чине речник унутар функције са именом истог параметру који искључује двоструку звездицу **
.
Пример 3: Коришћење ** кваргс за прослеђивање аргумената променљиве кључне речи функцији
def intro(**data): print("Data type of argument:",type(data)) for key, value in data.items(): print("() is ()".format(key,value)) intro(Firstname="Sita", Lastname="Sharma", Age=22, Phone=1234567890) intro(Firstname="John", Lastname="Wood", Email="[email protected]", Country="Wakanda", Age=25, Phone=9876543210)
Када покренемо горњи програм, излаз ће бити
Тип аргумента: Име је Сита Презиме је Схарма Аге је 22 Телефон је 1234567890 Тип података аргумент: Име је Јохн Презиме је Воод Имејл је јохнвоод@номаил.цом Земља је Ваканда Старост је 25 Телефон је 9876543210
У горњем програму имамо функцију intro()
са ** подацима као параметром. Функцији смо проследили два речника са променљивом дужином аргумента intro()
. Имамо intro()
функцију фор лооп инсиде која ради на подацима прослеђеног речника и штампа вредност речника.
Ствари које треба запамтити:
- * аргс и * кваргс су посебна кључна реч која омогућава функцији да узима аргумент променљиве дужине.
- * аргс преноси променљиви број аргумената без кључне речи и на којима се може извршити операција листе.
- ** кваргс прослеђује променљиви број речника аргумената кључних речи како би функционисао на којем се може радити операција речника.
- * аргс и ** кваргс чине функцију флексибилном.