Što je glavna funkcija Pythona?
Glavna funkcija Pythona početna je točka bilo kojeg programa. Kada se program pokrene, interpreter python pokreće kôd uzastopno. Glavna se funkcija izvršava samo kada se izvodi kao program Python. Neće pokretati glavnu funkciju ako je uvezena kao modul.
Što je def main () funkcija u Pythonu? Da biste to razumjeli, razmotrite sljedeći primjer koda
def main():print ("hello world!")print ("Guru99")
Ovdje smo dobili dva dijela tiska - jedan je definiran unutar glavne funkcije koja je "Hello World", a drugi je neovisan, odnosno "Guru99". Kada pokrenete funkciju def main ():
- Ispisuje se samo "Guru99"
- a ne kod "Hello World".
To je zato što nismo proglasili funkciju poziva "if__name __ ==" __main__ ".
Važno je da nakon definiranja glavne funkcije kod pozovete if__name __ == "__main__", a zatim pokrenete kôd, tek tada ćete dobiti izlaz "hello world!" u programskoj konzoli. Razmotrite sljedeći kod
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
U ovom je slučaju tiskan Guru99.
Evo objašnjenja,
- Kada Python interpreter pročita izvornu datoteku, izvršit će sav kod koji se u njoj nalazi.
- Kada Python pokrene "izvornu datoteku" kao glavni program, postavlja posebnu varijablu (__name__) da ima vrijednost ("__main__").
- Kada izvršite glavnu funkciju u pythonu, ona će tada pročitati izraz "if" i provjeriti je li __name__ jednako __main__.
- U Pythonu "if__name __ ==" __main__ " omogućuje vam pokretanje Python datoteka bilo kao moduli za višekratnu upotrebu ili kao samostalni programi.
Varijabla __name__ i Python modul
Da biste razumjeli važnost varijable __name__ u Python glavnoj funkcijskoj metodi, razmotrite sljedeći kod:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Sada razmislite, kod se uvozi kao modul
import MainFunctionprint("done")
Evo objašnjenja koda:
Kao i C, Python koristi == za usporedbu, dok = za dodjelu. Python interpreter koristi glavnu funkciju na dva načina
izravno pokretanje:
- __ime __ = __ glavni__
- if naredba == True, a skripta u _main_will će biti izvršena
uvoz kao modul
- __name __ = naziv datoteke modula
- if statement == false, a skripta u __main__ neće se izvršiti
Kada se kôd izvrši, provjerit će naziv modula s "ako". Ovaj mehanizam osigurava da se glavna funkcija izvršava samo kao izravno pokretanje, a ne kada se uvozi kao modul.
Iznad primjera nalaze se Python 3 kodovi, ako želite koristiti Python 2, razmislite o sljedećem kodu
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
U Pythonu 3 ne trebate koristiti if__name. Sljedeći kod također radi
def main():print("Hello World!")main()print("Guru99")
Napomena: Pazite da nakon definiranja glavne funkcije ostavite malo uvlake i ne deklarirate kod odmah ispod def main (): funkcije, u suprotnom će se pojaviti pogreška uvlačenja.