ПредишенСледващото

Какво е аргументи и kwargs в питон

. или за използване на неограничен брой аргументи в Python

За да получите отговор на въпроса в заглавието, тя се разделя на две части:
  1. Какво е аргументи и kwargs? (Най-нетърпеливи да шпионира отговор =))
  2. Какво правят звездите?
Нека да започнем от края. В Python, функции като аргумент могат да се предават не само отделни обекти, но и на колекцията.

Забележка: Ако функцията се предава списък на членовете му трябва да следват строго дефинирано предварителна поръчка, или, с други думи, в своите позиции (в противен случай как можем да знаем какво определен елемент от списъка?). Например, ако sign_up () функция ни чака да се изброят [име, възраст, пол]. ние трябва стриктно да се придържа към тази цел; ние не можем да извикате функция sign_up (възраст, име, пол). Подобни аргументи се наричат ​​неназовани или позиционни. Ако аргумент на функция речника, последователността може да бъде произволно, тъй речникови елементи се прехвърлят с ключовете, те няма да бъдат объркани. Подобни аргументи се наричат ​​имена.

Продължение на примера по в бележката, ще означаваме нашия списък през Променливата дам на функцията: В този случай, функцията се възприема като аргумент не е единичен обект (колекция са и обекти, и като цяло всичко в Python), и няколко, събирането трябва да разопакова. Това е точно това, което прави звезди. Записи от този тип (с една или две звездички) в Python се използва в два случая: когато се обадите (както направихме точно това) и при определяне на функцията.

* Опцията и ** kwargs при определяне на функцията

Аргументи на функцията в Python, означени с * и ** при определяне или да се обадите, наречени неопределен брой позиционни или ключови думи аргументи. Много изненадващо. В действителност, тази колекция - списъци, кортежи и речници. Първите две предава позиционни аргументи, речници - именувани аргументи. За да прехвърлите на функциите на няколко аргумента като колекция, колекцията трябва да бъде разопакован. Това се прави с една или две звездички. Ще дефинираме функция с един формален (позиционен) аргумент и неопределен брой допълнителни позиционни аргументи (тук, два). Функция с име аргументи определят, както следва:

Така че това, което е аргументи и kwargs.

Сега сте готови да научат истината за това :)
Имената и аргументи kwargs по неизречена споразумение не се е възползвал в документацията на Python. В действителност, никой не спира да се вземат каквито и да било други кодове и имена на променливи. Например, за речници, заедно с ** kwargs понякога използват ** опции.

Използването на * и **, когато се обаждате функции

Сега нека видим как да се извика функцията с позиционни аргументи (вече демонстрираха по-горе). Вече има по-малко чувство на аргументи и kwargs, че би било по-добре да изберете по-описателни имена (въпреки че в този пример, ние не далеч напреднали в това =)): може да бъде прехвърлено Аргументи, и така:
Следният пример показва призив към посочените аргументите на функции:
Същото е и с буквално:

заключение

Така че, ако накратко обобщи по-горе, звездите в Python се използва в следните случаи:

  1. При дефиниране на функция, в случай че функцията отнема неопределен брой аргументи.
  2. Когато се обаждате функция, когато той трябва да премине няколко обекта в една колекция. Моля, обърнете внимание, а не за събиране на обект, както и предмети, които се съдържат в колекцията. Следователно, определянето на * опцията и ** kwargs неопаковани събиране и се прехвърля към елементите във функцията.

Може би ще се интересуват

Свързани статии

Подкрепете проекта - споделете линка, благодаря!