Ce este funcția principală Python?
Funcția principală Python este punctul de plecare al oricărui program. Când programul este rulat, interpretul python rulează codul secvențial. Funcția principală este executată numai atunci când este rulată ca un program Python. Nu va rula funcția principală dacă a fost importată ca modul.
Care este funcția def main () în Python? Pentru a înțelege acest lucru, luați în considerare următorul exemplu de cod
def main():print ("hello world!")print ("Guru99")
Aici, avem două piese de imprimare - una este definită în funcția principală care este „Hello World” și cealaltă este independentă, care este „Guru99”. Când rulați funcția def main ():
- Se imprimă numai „Guru99”
- și nu codul „Hello World”.
Acest lucru se datorează faptului că nu am declarat funcția de apel „if__name __ ==„ __main__ ”.
Este important ca după definirea funcției principale, să apelați codul prin if__name __ == "__main__" și apoi să rulați codul, numai atunci veți obține rezultatul "hello world!" în consola de programare. Luați în considerare următorul cod
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 este tipărit în acest caz.
Iată explicația,
- Când interpretul Python citește un fișier sursă, acesta va executa tot codul găsit în acesta.
- Când Python rulează „fișierul sursă” ca program principal, setează variabila specială (__name__) să aibă o valoare („__main__”).
- Când executați funcția principală în python, acesta va citi apoi instrucțiunea „if” și va verifica dacă __name__ este egal cu __main__.
- În Python „if__name __ ==„ __main__ ” vă permite să rulați fișierele Python fie ca module reutilizabile , fie ca programe independente.
Variabila __name__ și modulul Python
Pentru a înțelege importanța variabilei __name__ în metoda funcției principale Python, luați în considerare următorul cod:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Acum, ia în considerare, codul este importat ca un modul
import MainFunctionprint("done")
Iată explicația codului:
La fel ca C, Python folosește == pentru comparație în timp ce = pentru atribuire. Interpretul Python folosește funcția principală în două moduri
alergare directă:
- __nume __ = __ principal__
- dacă declarația == Adevărată și scriptul din _main_ va fi executat
import ca modul
- __name __ = numele fișierului modulului
- if statement == false, iar scriptul din __main__ nu va fi executat
Când codul este executat, acesta va verifica numele modulului cu „dacă”. Acest mecanism asigură, funcția principală este executată numai ca rulare directă, nu atunci când este importată ca modul.
Exemplele de mai sus sunt codurile Python 3, dacă doriți să utilizați Python 2, vă rugăm să luați în considerare următorul cod
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
În Python 3, nu trebuie să utilizați if__name. Codul următor funcționează, de asemenea
def main():print("Hello World!")main()print("Guru99")
Notă: Asigurați-vă că, după definirea funcției principale, lăsați o liniuță și nu declarați codul chiar sub def main (): funcția altfel, va da o eroare de liniuță.