VarArgs parametri funkcija - ★★ Fog Developer ★★

Novo

6/recent/ticker-posts

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

Постави коментар

0 Коментари