Poziv funkcije

Kada se funkcija pozove, može primiti argumente s kojima radi tj. obrađuje ih.
Poziv funkcije je izraz sa sledećom sintaksom:

ime_funkcije (argumenti)

Argumenti su u najjednostavnijem slučaju niz od nula ili više izraza odvojenih zarezima.
Ako funkcija prihvata argumente, onda parametri sadrže jedan ili više identifikatora, odvojenih zarezima.
U ovom slučaju, svaki poziv funkcije pridružuje stvarne vrednosti, argumente, s parametrima u definiciji funkcije.

U sledećem primeru je napisana funkcija koja štampa kub nekog broja, a zatim i poziv funkcije koji kao argument prosleđuje broj 5:

  
def izracunaj_kub(x):
    print (x*x*x)

izracunaj_kub(5)     #pozivamo funkciju sa jednim argumentom

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> 125


Pogledajmo primer funkcije koja ima dva parametra. Poziv funkcije u tom slučaju mora imati dva argumenta.
U ovom primeru je napisana funkcija koja štampa zbir dva broja, a funkcija se poziva za brojeve 5 i 6:

  
def saberi(x,y):
    print (x+y)

saberi(5,6)     #pozivamo funkciju sa dva  argumenta

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> 11


Evo još jednog primera poziva funkcije, ali u ovom slučaju se prosleđuje argument tipa string:

  
def programski_jezik(x):
    print ("Ucimo programski jezik: "), x
    
programski_jezik("Pajton ")     

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> Ucimo programski jezik: Pajton


Funkcije bez parametara

U najjednostavnijem slučaju, funkcija nema nikakvih parametara, što znači da se kod poziva funkcije ne prosleđuju nikakvi argumenti.

U ovom slučaju, definicija funkcije ima prazne zagrade koje slede iza imena funkcije.

U sledećem primeru je napisana funkcija koja nema parametara, već se na svaki poziv funkcije štampa poruka "Učimo programski jezik Pajton":

  
def stampaj_poruku():
    print ("Ucimo programski jezik Pajton")
    
stampaj_poruku()    #pozivamo funkciju bez argumenata

            
Kopiraj

Nakon pokretanja programa kao rezultat dobicemo:
>> Ucimo programski jezik Pajton


h2>Naredba RETURN

Naredba return služi za vraćanje rezultata rada funkcije, što omogućava dalji rad sa tim podatkom.

Naredba return u Pajtonu dopušta se jedino unutar tela funkcije, a iza nje može slediti neki izraz.

U sledećem primeru je data funkcija koja vraća vrednost proizvoda dva broja. Ta vrednost se može kasnije koristiti za dalji rad, ali u ovom slučaju ćemo je samo ištampati na izlaz.

  
def pomnozi(x,y):
    return x*y

print (pomnozi(5,10))

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> 50


Kada se return izvrši, funkcija završava sa radom i vraća se vrednost izraza.
Funkcija vraća vrednost None ako završava dolaskom do kraja svog tela funkcije ili izvršavanjem naredbe return bez pridruženog izraza.

U sledećem primeru funkcija vraća vrednost None zato što se izvršava naredba return bez pridruženog izraza:

 

def pomnozi(x,y):
    a=x+y
    return 
    
print (pomnozi(5,10))

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> None


Prenošenje argumenata

Sve operacije prenošenja argumenata u Pajtonu su putem vrednosti.

Na primer, ako se promenljiva prenosi kao argument, Pajton prosleđuje funkciji vrednost koju promenljiva pokazuje, a ne samu promenljivu(adresu koju sadrži). Na taj način funkcija ne može menjati sadržaj promenljive, nego samo kopiju vrednosti.

U sledećem primeru promenljivoj a se dodeljuje vrednost 2, a zatim se prosleđuje funkciji kao argument. Nakon rada funkcije se vraća izmenjena vrednost, ali prilikom štampanja vrednosti promenljive a ipak se štampa 2. Primetite da se promenljiva nije promenila nakon poziva funkcije!

  
def funkcija(x):
    x=x+1
    return x

a=2
funkcija(a) 
print (a)  

            
Kopiraj

Nakon pokretanja programa kao rezultat dobićemo:
>> 2


Parametri funkcije zajedno s bilo kakvim promenljivim koje se koriste u telu funkcije, čine lokalni prostor imena funkcije.
Svaka od ovih promenljivih zove se lokalna promenljiva funkcije.
Promenljive koje nisu lokalne zovu se globalne. Ako lokalna promenljiva unutar funkcije ima isto ime kao i globalna promenljiva, kada god se to ime spomene u telu funkcije, koristi se lokalna, a ne globalna promenljiva.