Питхон * аргс и ** кваргс (са примерима)

У овом чланку ћемо научити о Питхон * аргс и ** кваргс, њиховој употреби и функцијама са примерима.

У програмирању дефинишемо функцију за израду кода за вишекратну употребу који изводи сличне операције. Да бисмо извршили ту операцију, позивамо функцију са одређеном вредношћу, та вредност се у Питхону назива аргументом функције.

Препоручили бисмо вам да прочитате аргументе функције Питхон и функције Питхон.

Претпоставимо да дефинишемо функцију за сабирање 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.

Увод у * аргс и ** кваргс у Питхону

У Питхону можемо променљивом броју аргумената проследити функцију помоћу посебних симбола. Постоје два посебна симбола:

  1. * аргс (Аргументи који нису кључне речи)
  2. ** кваргс (Аргументи кључних речи)

* Аргс и ** кваргс користимо као аргумент када нисмо сигурни у број аргумената који ће се проследити у функцијама.

Питхон * аргс

Као у горњем примеру, нисмо сигурни у број аргумената који се могу проследити функцији. Питхон има * аргс који нам омогућавају да пренесемо променљиви број аргумената који нису кључне речи да би функционисали.

У функцији бисмо требали користити звјездицу *прије имена параметра за просљеђивање аргумената промјенљиве дужине. Аргументи се просљеђују као скуп и ови просљеђени аргументи чине кору унутар функције с истим именом као параметар искључујући звјездицу *.

Пример 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()функцију фор лооп инсиде која ради на подацима прослеђеног речника и штампа вредност речника.

Ствари које треба запамтити:

  • * аргс и * кваргс су посебна кључна реч која омогућава функцији да узима аргумент променљиве дужине.
  • * аргс преноси променљиви број аргумената без кључне речи и на којима се може извршити операција листе.
  • ** кваргс прослеђује променљиви број речника аргумената кључних речи како би функционисао на којем се може радити операција речника.
  • * аргс и ** кваргс чине функцију флексибилном.

Занимљиви Чланци...