Lokalne spremenljivke

V zadnjem primeru na prejšnji strani bomo pri stavku print(produkt) dobili napako: tolmač vidi, da je v telesu funkcije nek stavek (namreč produkt = a * x), ki spremenljivki produkt nekaj prireja, zato jo obravnava kot lokalno spremenljivko. Ko pride izvajanje do stavka print(produkt), pa se prireditev produkt = a * x še ni izvedla, zato lokalna spremenljivka produkt še ni inicializirana in tolmač bo javil napako. Na tistem mestu sicer že obstaja globalna spremenljivka produkt, vendar te funkcija ne vidi, ker ima lokalno spremenljivko z enakim imenom.

Kaj pa, če bi funkcija vendarle želela nekaj prirediti neki globalni spremenljivki (in ne ustvariti lokalne spremenljivke z istim imenom)? V pythonu lahko s stavkom global določimo, da hočemo uporabljati neko globalno spremenljivko in ne dobiti istoimenske lokalne spremenljivke:

Izvedi Počisti



					

Vračanje rezultata iz funkcije

Pogosto pride prav, če lahko funkcija vrne nek rezultat. Klicatelj potem ta rezultat vidi kot vrednost izraza, s katerim je funkcijo poklical, in ga lahko nadalje obdeluje kot katerokoli drugo vrednost. Na primer:

Izvedi Počisti



Ko pride izvajanje funkcije do stavka return, se klic takoj konča (četudi za tem stavkom pridejo v telesu funkcije še drugi stavki) in vrne vrednost izraza, ki smo ga napisali v stavku return. Ko na primer v zgornjem primeru glavni del programa pokliče Povprecje(a), ta funkcija najprej pokliče funkcijo Vsota, ki sešteje elemente tabele in vrne njihovo vsoto; v našem primeru je to 90. Nato Povprecje pokliče še standardno pythonovo funkcijo len, ki vrne število elementov tabele (v našem primeru 3); rezultat izraza Vsota(tabela) / len(tabela) je torej 30 in to je vrednost, ki jo vrne funkcija Povprecje. Glavni del programa to vrednost poda kot parameter standardni pythonovi funkciji print in jo tako izpiše.