Python Glavna funkcija i metoda: Razumijevanje def Main()
⚡ Pametni sažetak
Python Glavna funkcija označava početnu točku gdje interpreter počinje izvršavati program. Definirana s def main() i uparena s if __name__ == “__main__” guardom, odvaja kod modula za višekratnu upotrebu od samostalnog izvršavanja skripte.

Što je Python Glavna funkcija?
The Python glavna funkcija je početna točka svakog programa. Kada se program pokrene, Python Interpreter izvršava kod sekvencijalno. Glavna funkcija se izvršava samo kada se pokreće kao Python program. Neće pokrenuti glavnu funkciju ako je uvezen kao modul.
U čemu je funkcija def main(). PythonDa biste to razumjeli, razmotrite sljedeći primjer koda, koji je dio jezgre Python programiranje osnove:
def main() Primjer 1
def main():
print ("Hello World!")
print ("Guru99")
Ovdje imamo dva ispisa - jedan je definiran unutar glavne funkcije, a to je "Pozdrav svijete!", a drugi je neovisan, a to je "Guru99”. Kada pokrenete funkciju def main ():
- Samo "GuruIspisi od 99”
- a ne kod "Hello World!"
To je zato što nismo objavili poziv funkcija “if__name__== “__main__”.
Važno je da nakon definiranja glavne funkcije pozovete kod pomoću if__name__== “__main__” i zatim pokrenete kod, samo tada ćete dobiti izlaz “zdravo svijetu!” u programskoj konzoli. Razmotrite sljedeći kôd
def main() Primjer 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruU ovom slučaju ispisan je broj 99.
Evo objašnjenja,
- Kada Python interpreter čita izvornu datoteku, izvršit će sav kod koji se u njoj nalazi.
- Kada Python pokreće “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 naredbu “if” i provjeriti je li __name__ jednako __main__.
- In Python “if__name__== “__main__” omogućuje vam pokretanje Python datoteke bilo kao višekratni moduli ili samostalni programi.
Zašto koristiti funkciju main() u Python?
Python ne prisiljava vas da napišete glavnu funkciju, no iskusni programeri je koriste u gotovo svakom netrivijalnom skriptu. Uzorak def main() unosi red u datoteku i čini kod sigurnim za ponovnu upotrebu. Evo glavnih razloga za njegovo korištenje:
- Jasna ulazna točka: Funkcija main() govori čitatelju točno gdje program počinje, tako da je logiku lako pratiti.
- Moduli za višekratnu upotrebu: Code zaštićeno s if __name__ == “__main__” izvršava se samo pri izravnom izvršavanju, tako da druge datoteke mogu uvesti vaše funkcije bez nuspojava.
- Lokalni opseg: Varijable kreirane unutar main() funkcije ostaju lokalne, što sprječava slučajne sukobe s globalnim imenima drugdje u modulu.
- Lakše testiranje: Izoliranje logike u main() omogućuje testnom paketu da ga izravno pozove i provjeri rezultat.
- Zajednička konvencija: Funkcija main() je široko prepoznat signal ulazne točke programa, što poboljšava održavanje među timovima.
Ukratko, funkcija main() je opcionalna u Python, ali održava veće programe čitljivima, testiranima i sigurnima za uvoz.
Varijabla __name__ i Python Moduli
Da bismo razumjeli važnost varijable __name__ u Python metoda glavne funkcije, 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 MainFunction
print("done")
Ovdje je objašnjenje koda: Kao C, Python koristi == za usporedbu dok = za dodjelu. Python interpreter koristi glavnu funkciju na dva načina
izravna vožnja:
- __ime__=__glavni__
- if izjava == True, a skripta u _main_bit će izvršena
uvoz kao modul
- __name__= naziv datoteke modula
- if iskaz == false, a skripta u __main__ neće biti izvršena
Kada se kôd izvrši, provjerit će naziv modula s "if". Ovaj mehanizam osigurava da se glavna funkcija izvršava samo kao izravno pokretanje, a ne kada se uvozi kao modul.
Gornji primjeri su Python 3 koda, ako želite koristiti Python 2, razmotrite sljedeći kôd
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, ne morate koristiti if__name. Sljedeći kod također radi
def main():
print("Hello World!")
main()
print("Guru99")
Bilješka: Pazite da nakon definiranja glavne funkcije ostavite malo uvlake i ne deklarirate kod točno ispod funkcije def main(): inače će dati pogrešku uvlake.
Kako prenijeti argumente naredbenog retka na Python glavna() funkcija
Funkcija main() je prirodno mjesto za obradu unosa koje korisnik prosljeđuje u naredbenom retku. Python pohranjuje te vrijednosti u popis sys.argv, koji pruža standardni sys modul. Prva stavka, sys.argv[0], je naziv skripte, a svaka vrijednost nakon nje je argument koji daje korisnik.
Sljedeći primjer čita i ispisuje argumente naredbenog retka iz funkcije main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Ako spremite datoteku kao script.py i pokrenete python script.py alfa beta, program ispisuje naziv skripte i popis ['alpha', 'beta']. Budući da vrijednosti stižu unutar main(), logika ostaje organizirana i jednostavna za testiranje.
Evo nekoliko praktičnih savjeta za rad s unosom iz naredbenog retka:
- Izrežite naziv skripte: Koristite sys.argv[1:] za čitanje samo argumenata koje je korisnik upisao.
- Koristite argparse za prave alate: Ugrađeni modul argparse parsira zastavice, opcije i tekst pomoći puno sigurnije nego ručno čitanje sys.argv datoteke.
- Vrati izlazni kod: Zatvorite poziv kao sys.exit(main()) tako da povratna vrijednost main() postane status izlaza procesa.
- Rano potvrdite: Provjerite broj i vrstu argumenata na vrhu funkcije main() prije pokretanja ostatka programa.
Ovaj obrazac pretvara jednostavnu skriptu u pouzdan alat naredbenog retka, a istovremeno održavaping svaki korak unutar jedne, testirane main() funkcije.
Python Funkcija main() u odnosu na druge programske jezike
Programeri koji dolaze iz C-a, C++, ili Java često očekuju obaveznu funkciju main(). Python radi drugačije jer je interpretirani jezik, pa interpreter jednostavno pokreće datoteku od gornjeg retka do dna. Funkcija main() u Python stoga je konvencija, a ne pravilo.
- C, C++, C# i Java: Funkcija main() je obavezna ulazna točka. Runtime je automatski poziva, a može postojati samo jedna po programu.
- Python: Nije potrebna funkcija main(). Izvršavanje počinje od prvog retka datoteke, a def main() se izvršava samo ako je vaš kod pozove.
- Stražar: Blok if __name__ == “__main__” daje Python svrha slična kompiliranoj main() funkciji označavanjem koda koji bi se trebao izvršavati samo kada je datoteka glavni program.
Dakle, dok drugi jezici nameću ulaznu točku main(), Python ostavlja vam izbor, nudeći istu jasnoću putem konvencije umjesto pravila kompajlera.




