Kako pozvati funkciju u Python (Primjer)
⚡ Pametni sažetak
Funkcije u Python su blokovi koda za višekratnu upotrebu koji se pokreću kada se pozovu, definirani naredbom def. Prihvaćaju argumente, vraćaju vrijednosti i oslanjaju se na dosljedno uvlačenje za grupiranje naredbi koje pripadaju svakoj funkciji.
Što je funkcija u Python?
A Funkcija u Python je dio koda koji se izvršava kada se na njega referencira. Koristi se za korištenje koda na više mjesta u programu. Također se naziva metoda ili procedura. Python nudi mnoge ugrađene funkcije poput print(), input(), compile() i exec(), ali vam također daje slobodu stvaranja vlastitih funkcija.
Kako definirati i pozvati funkciju u Python
Funkcija u Python definirana je naredbom "def" nakon koje slijedi naziv funkcije i zagrade ( () ).
Primjer:
Definirajmo funkciju pomoću naredbe „def func1():“ i pozovimo funkciju. Izlaz funkcije bit će „Učim Python funkcija".
Poziv funkcije func1() poziva našu def func1(): i ispisuje naredbu „Učim Python funkcija Nema.”
Postoji skup pravila u Python programiranje za definiranje funkcije.
- Svi argumenti ili ulazni parametri trebaju biti smješteni unutar ovih zagrada.
- Prva naredba funkcije može biti opcionalna naredba - docstring ili dokumentacijski niz funkcije.
- Kod unutar svake funkcije počinje dvotočkom (:) i treba biti uvučen (razmak).
- Naredba return (izraz) izlazi iz funkcije, opcionalno vraćajući vrijednost pozivatelju. Naredba return bez argumenata ista je kao i return None.
Značaj uvlačenja (razmaka) u Python
Prije nego što se upoznamo s Python funkcije, važno je da razumijemo pravilo uvlačenja koje treba deklarirati Python funkcije, a ova pravila se primjenjuju i na druge elemente Python kao i, kao što je deklariranje uvjeta, petlji ili varijabli.
Python slijedi određeni stil uvlačenja kako bi definirao kod. Budući da Python Funkcije nemaju eksplicitni početak ili kraj poput vitičastih zagrada koje bi označavale početak i kraj funkcije, već se moraju oslanjati na ovo uvlačenje. Ovdje ćemo uzeti jednostavan primjer s naredbom "print". Kada napišemo funkciju "print" odmah ispod retka def func1():, prikazat će se "greška uvlačenja: očekivao se uvučeni blok".
Sada, kada dodate uvlačenje (razmak) ispred funkcije "print", trebalo bi se ispisati kako se očekuje.
Barem jedno uvlačenje je dovoljno da bi vaš kod uspješno radio. No, kao najbolja praksa, preporučljivo je ostaviti oko 3-4 mjesta uvlačenja za pozivanje vaše funkcije.
Također je potrebno da prilikom deklariranja uvlačenja zadržite isto uvlačenje za ostatak koda. Na primjer, na donjoj snimci zaslona, kada pozovemo drugu naredbu „još uvijek u funkciji1“ i ona nije deklarirana odmah ispod prve naredbe ispisa, prikazat će se pogreška uvlačenja: „unindent se ne podudara ni s jednom drugom razinom uvlačenja.“
Sada, kada primijenimo isto uvlačenje za obje naredbe i poravnamo ih u istu liniju, to daje očekivani izlaz.
Kako funkcionira povratna vrijednost?
Naredba za povratak u Python određuje koju vrijednost vratiti pozivatelju funkcije. Razumijemo to sljedećim primjerom.
Korak 1) Funkcija ne vraća ništa
Ovdje vidimo kada funkcija ne "vraća". Na primjer, želimo kvadrat broja 4, a odgovor bi trebao biti "16" kada se kod izvrši. To se vraća kada jednostavno koristimo kod "print x*x", ali kada pozovete funkciju "print square", ona vraća "None" kao izlaz. To je zato što se kada pozovete funkciju, rekurzija ne događa i funkcija pada na kraju funkcije. Python vraća "None" ako se vrijednost nalazi izvan kraja funkcije.
Korak 2) Zamijenite naredbu ispisa naredbom dodjeljivanja
Kako bismo ovo razjasnili, naredbu ispisa zamjenjujemo naredbom dodjeljivanja. Provjerimo izlaz.
Kada pokrenete naredbu „print square (4)“, ona zapravo vraća vrijednost objekta. Budući da ovdje nemamo nikakvu specifičnu funkciju za izvršavanje, vraća „None“.
Korak 3) Koristite funkciju 'return' i izvršite kod
Sada ćemo vidjeti kako dohvatiti izlaz pomoću naredbe "return". Kada koristite funkciju "return" i izvršite kod, dobit ćete izlaz "16".
Korak 4) Pokrenite naredbu 'print square'
Funkcije u Python su sami objekt, a objekt ima neku vrijednost. Ovdje ćemo vidjeti kako Python tretira objekt. Kada pokrenete naredbu "print square", vraća vrijednost objekta. Budući da nismo proslijedili nikakav argument, nemamo nikakvu specifičnu funkciju za izvršavanje ovdje, pa vraća zadanu vrijednost (0x021B2D30) koja je lokacija objekta. U praksi Python program, vjerojatno vam to nikada neće trebati.
Argumenti u funkcijama
Argument je vrijednost koja se prenosi funkciji kada se pozove.
Drugim riječima, na strani pozivanja to je argument, a na strani funkcije to je parametar.
Da vidimo kako Python argumenti funkcioniraju.
Korak 1) Argumenti su deklarirani u definiciji funkcije. Prilikom pozivanja funkcije, možete proslijediti vrijednosti za te argumente kao što je prikazano u nastavku.
Korak 2) Za deklariranje zadane vrijednosti za argument, dodijelite mu vrijednost u definiciji funkcije.
Primjer: x nema zadanu vrijednost. Zadana vrijednost y = 0. Kada prilikom pozivanja funkcije množenja navedemo samo jedan argument, Python dodjeljuje zadanu vrijednost x-u dok keeping vrijednost y=0. Stoga je množak x*y=0.
Korak 3) Ovaj put ćemo promijeniti vrijednost na y=2 umjesto zadane vrijednosti y=0, a izlaz će se vratiti kao (4×2)=8.
Korak 4) Također možete promijeniti redoslijed kojim se argumenti prosljeđuju u PythonOvdje smo obrnuli redoslijed vrijednosti x i y na x=4 i y=2.
Korak 5) Više argumenata može se predati i kao niz. Ovdje u primjeru pozivamo više argumenata (1,2,3,4,5) pozivom funkcije (*args).
Primjer: Višestruke argumente smo deklarirali kao brojeve (1,2,3,4,5); kada pozovemo funkciju (*args), ona ispisuje izlaz kao (1,2,3,4,5).
Savjet:
- In Python 2.7, preopterećenje funkcija nije podržano. Preopterećenje funkcija je mogućnost stvaranja više metoda istog imena s različitom implementacijom. Preopterećenje funkcija je u potpunosti podržano u Python 3.
- Postoji prilična zbrka između metoda i funkcija. Metode u Python su povezane s instancama objekata, dok funkcije nisu. Kada Python poziva metodu, veže prvi parametar tog poziva na odgovarajuću referencu objekta. Jednostavnim riječima, samostalna funkcija u Python je "funkcija", dok je funkcija koja je atribut klase ili instance "metoda".
Ovdje je kompletan Python 3 kod
#define a function
def func1():
print ("I am learning Python function")
print ("still in func1")
func1()
def square(x):
return x*x
print(square(4))
def multiply(x,y=0):
print("value of x=",x)
print("value of y=",y)
return x*y
print(multiply(y=2,x=4))
Ovdje je kompletan Python 2 kod
#define a function
def func1():
print " I am learning Python function"
print " still in func1"
func1()
def square(x):
return x*x
print square(4)
def multiply(x,y=0):
print"value of x=",x
print"value of y=",y
return x*y
print multiply(y=2,x=4)















