VarArgs parametri funkcija

9.6 VarArgs parametri funkcija

Ponekad nećeš znati koliko argumenata želiš da proslediš funkciji. Zamisli funkciju koja će da ti računa sumu svih stvari koje si pazario u prodavnici. Kako ćeš da definišeš takvu funkciju ako ne znaš koliko ćeš ti stvari kupiti u prodavnici? Funkcija mora biti prilagodljiva, zar ne? Mora prikazati sumu ako smo kupili samo jednu stvar, ali isto tako i ako kupimo 100, 200 ili 1000 različitih stvari!
Kako se ispostavlja, ni ovo nije teško! Jednostavno, ovakav „rad“ funkcije se postiže ako, prilikom definisanja parametara koristimo zvezdicu (znak asteriks - *)
def funkcija(*parametri):
    telo_funkcije
A ako želimo da koristimo ključne reči – koristimo dva asteriksa (**):
def funkcija(**ključne_reči):
    telo_funkcije
Ovo je moguće zato što Python ima, kao tipove podataka, nešto što se zove lista, kao i rečnik. Kada upotrebljavamo jednu zvezdicu, Python parametre sakuplja u listu, a ako koristimo dve – skuplja ih u rečnik. Da te ne bih opterećivao sada previše sa ovim, treba da zapamtiš da ih možeš koristiti, kao i to da ih možeš kombinovati:
>>> def platio(kredit = 0, *sitno, **krupno): 
...     platio = kredit 
...     for cena in sitno: 
...             platio += cena 
...     for cena in krupno: 
...             platio += krupno[cena] 
...     print(platio) 
... 
>>> sibica = 5 
>>> cigare = 150 
>>> jogurt = 75 
>>> burek = 150 
>>> platio(sibica, cigare, jogurt, burek, tv = 15800, majstor = 5000) 
21180 
>>> 
Prvo obrati pažnju na način pozivanja funkcije. Prosledili smo neke vrednosti (sibica, cigare, jogurt, burek), koje je funkcija prikupila u listu, a zatim je kroz tu listu „prošla“ sa for petljom.
Drugo, što smo uradili prilikom pozivanja naše funkcije je da smo prosledili vrednosti preko ključnih reči (tv, majstor), koje je funkcija prikupila kao REČNIK (koji ću ti objasniti kasnije). Obrati pažnju kako smo pristupili cenama TV aparata i majstorskim uslugama:
for cena in krupno: 
        platio += krupno[cena] 
Ali, o tome kasnije :)

9,5 Pozivanje funkcija
pomoću ključnih reči
Indeks 9.7 Parametri koji se
mogu pozvati samo pomoću
ključnih reči

Primjedbe

Popularno ovog meseca

Gde pronaći novosti sa facebook stranica nakon velike promene koja ga je zadesila?

Dva načina da vratite svoj Windows 10 na fabričke vrednosti

Kako preuzeti video koji je neko postavio na facebook-u bez upotrebe dodatnih programa?

Više neće biti moguć besplatan prelazak na Windows 10

Prijateljski meč ŠK "Titel" - ŠK "Bukovac"

Kako manipulisati Windows licencom pomoću slmgr komande?

Tu je novi Qt creator 4.4.0!

Fake poet

Da li je poželjno biti anoniman na internetu (ili se predstavljati punim imenom i prezimenom)?

Kosmička era može da počne! 10, 9, 8, 7.... Naravno, pre 60 godina...