Kako pozvati funkciju u Python (Primjer)
Što je funkcija u Python?
A Funkcija u Python je dio koda koji se pokreće kada se referencira. Koristi se za korištenje koda na više od jednog mjesta u programu. Također se naziva metoda ili postupak. Python pruža mnoge ugrađene funkcije kao što su print(), input(), compile(), exec() itd. ali također daje slobodu stvaranja vlastitih funkcija.
Kako definirati i pozvati funkciju u Python
Funkcija u Python je definirano s “def” izjava iza 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".
Funkcija funkcija ispisa1() poziva našu def func1(): i ispisuje naredbu ” učim Python funkcija Nema."
Postoji skup pravila u Python za definiranje funkcije.
- Svi argumenti ili ulazni parametri trebaju biti smješteni unutar ovih zagrada
- Prva naredba funkcije može biti neobavezan naredbeni niz dokumenata ili dokumentacijski niz funkcije
- Kôd unutar svake funkcije počinje dvotočkom (:) i treba biti uvučen (razmak)
- Izjava return (izraz) izlazi iz funkcije, opcionalno vraćajući vrijednost pozivatelju. Naredba return bez argumenata ista je kao 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 i ova su pravila primjenjiva na ostale elemente Python kao i deklariranje uvjeta, petlji ili varijabli.
Python slijedi određeni stil uvlačenja za definiranje koda, jer Python funkcije nemaju nikakav eksplicitan početak ili kraj poput vitičastih zagrada za označavanje početka i kraja funkcije, moraju se oslanjati na ovu uvlaku. Ovdje ćemo uzeti jednostavan primjer s naredbom "print". Kada napišemo funkciju "print" odmah ispod def func 1 (): Prikazat će se "pogreška uvlačenja: očekuje se uvučeni blok".
Sada, kada dodate uvlaku (razmak) ispred funkcije "ispis", trebalo bi se ispisati kako se očekuje.
Dovoljna je barem jedna uvlaka da vaš kod uspješno radi. Ali kao najbolja praksa preporučljivo je ostaviti otprilike 3-4 uvlake za pozivanje vaše funkcije.
Također je potrebno da prilikom deklariranja uvlačenja morate zadržite istu uvlaku za ostatak vašeg koda. Na primjer, na donjoj snimci zaslona kada zovemo drugu izjavu "još uvijek u funkciji1" i kada nije deklarirana odmah ispod prve izjave za ispis, pokazat će pogrešku uvlačenja "poništi uvlačenje ne odgovara nijednoj drugoj razini uvlačenja."
Sada, kada primijenimo isto uvlačenje za obje izjave i poravnamo ih u isti redak, to daje očekivani rezultat.
Kako funkcionira povratna vrijednost?
Naredba za povratak unutra Python specificira koju vrijednost treba vratiti pozivatelju funkcije. Shvatimo ovo na sljedećem primjeru
Korak 1) Funkcija ne vraća ništa
Ovdje - vidimo kada funkcija nije "povratak". Na primjer, želimo kvadrat od 4, a trebao bi dati odgovor "16" kada se kôd izvrši. Što daje kada jednostavno koristimo kod "print x*x", ali kada pozovete funkciju "print square" daje "Ništa" kao izlaz. To je zato što kada pozovete funkciju, rekurzija se ne događa i pada s kraja funkcije. Python vraća "Nijedan" za neuspješan završetak funkcije.
Korak 2) Zamijenite naredbu za ispis naredbom za dodjelu
Da bismo ovo učinili jasnijim, naredbu za ispis zamijenimo naredbom za dodjelu. Provjerimo izlaz.
Kada pokrenete naredbu “ispis kvadrata (4)” ona zapravo vraća vrijednost objekta budući da nemamo nikakvu posebnu funkciju koju bismo ovdje mogli pokrenuti, ona vraća “Ništa”.
Korak 3) Koristite funkciju 'return' i izvršite kod
Ovdje ćemo vidjeti kako dohvatiti izlaz pomoću naredbe "return". Kada koristite funkciju "return" i izvršite kod, to će dati 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 predmet. Kada pokrenete naredbu “print square” ona vraća vrijednost objekta. Budući da nismo proslijedili nijedan argument, nemamo nikakvu posebnu funkciju koju bismo ovdje mogli pokrenuti, ona vraća zadanu vrijednost (0x021B2D30) koja je lokacija objekta. U praksi Python programa, vjerojatno to nikada nećete morati učiniti.
Argumenti u funkcijama
Argument je vrijednost koja se prosljeđuje funkciji kada se ona pozove.
Drugim riječima, na strani koja poziva, to je argument, a na strani funkcije je parametar.
Da vidimo kako Python Args radi –
Korak 1) Argumenti se deklariraju u definiciji funkcije. Dok pozivate funkciju, možete proslijediti vrijednosti za te argumente kao što je prikazano u nastavku
Korak 2) Da biste deklarirali zadanu vrijednost argumenta, dodijelite mu vrijednost u definiciji funkcije.
Primjer: x nema zadane vrijednosti. Zadane vrijednosti y=0. Kada dajemo samo jedan argument dok pozivamo funkciju množenja, Python dodjeljuje isporučenu vrijednost x zadržavajući vrijednost y=0. Stoga je množenje x*y=0
Korak 3) Ovaj put ćemo promijeniti vrijednost u y=2 umjesto zadane vrijednosti y=0, a rezultat će biti (4×2)=8.
Korak 4) Također možete promijeniti redoslijed kojim se argumenti mogu proslijediti Python. Ovdje smo promijenili redoslijed vrijednosti x i y na x=4 i y=2.
Korak 5) Više argumenata također se može proslijediti kao niz. Ovdje u primjeru pozivamo više argumenata (1,2,3,4,5) pozivanjem funkcije (*args).
Primjer: Deklarirali smo više argumenata kao broj (1,2,3,4,5) kada pozivamo funkciju (*args); ispisuje izlaz kao (1,2,3,4,5)
Savjet:
- In Python 2.7. preopterećenje funkcije nije podržano u Python. Preopterećenje funkcija je mogućnost stvaranja više metoda istog naziva s različitom implementacijom. Preopterećenje funkcija u potpunosti je podržano u Python 3
- Postoji velika zbrka između metoda i funkcija. Metode u Python povezani su s instancama objekta dok funkcija 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)
Rezime
Funkcija u Python je dio koda za višekratnu upotrebu koji se koristi za izvođenje pojedinačne povezane radnje. U ovom ćemo članku vidjeti
- Funkcija definirana pomoću def izjava
- Blok koda unutar svake funkcije počinje dvotočkom (:) i treba biti uvučen (razmak)
- Svi argumenti ili ulazni parametri trebaju biti smješteni unutar ovih zagrada, itd.
- Najmanje jednu uvlaku treba ostaviti prije koda nakon deklaracije funkcije
- Isti stil uvlake treba održavati u cijelom kodu unutar def funkcije
- Za najbolju praksu tri ili četiri alineje se smatraju najboljim prije izjave
- Možete koristiti naredbu "return" za vraćanje vrijednosti u poziv funkcije.
- Python će ispisati slučajnu vrijednost poput (0x021B2D30) kada argument nije dostavljen pozivnoj funkciji. Primjer "funkcija ispisa".
- Na strani koja poziva, to je argument, a na strani funkcije je parametar
- Zadana vrijednost u argumentu – kada dajemo samo jedan argument dok pozivamo funkciju množenja ili bilo koju drugu funkciju, Python prema zadanim postavkama dodjeljuje drugi argument
- Python omogućuje vam i obrnuti redoslijed argumenta