Python Funcția și metoda Main: Înțelegerea funcției def Main()
⚡ Rezumat inteligent
Python Funcția main marchează punctul de plecare de la care interpretorul începe să ruleze un program. Definită cu def main() și asociată cu garda if __name__ == „__main__”, aceasta separă codul reutilizabil al modulului de execuția scriptului independent.

Ce Este Python Funcția principală?
Python functie principala este punctul de plecare al oricărui program. Când programul este rulat, Python Interpretorul rulează codul secvențial. Funcția principală este executată numai atunci când este rulată ca un Python program. Nu va rula funcția principală dacă este importată ca modul.
În ce este funcția def main() PythonPentru a înțelege acest lucru, luați în considerare următorul exemplu de cod, care face parte din nucleul Python de programare elemente de bază:
def main() Exemplul 1
def main():
print ("Hello World!")
print ("Guru99")
Aici, avem două elemente de tipar - una este definită în cadrul funcției principale, care este „Hello World!”, iar cealaltă este independentă, care este „Guru99”. Când executați funcția def main():
- Doar „GuruImprimări de 99”
- și nu codul „Hello World!”
Pentru că nu am declarat apelul funcția „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() Exemplul 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruÎn acest caz este tipărit 99.
Iată explicația,
- Atunci când Python interpretul citește un fișier sursă, va executa tot codul găsit în el.
- Atunci 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, va citi instrucțiunea „if” și va verifica dacă __name__ este egal cu __main__.
- In Python „if__name__== „__principal__” vă permite să rulați Python fisiere fie ca module reutilizabile sau programe de sine stătătoare.
De ce să folosiți o funcție main() în Python?
Python nu te obligă să scrii o funcție main, însă dezvoltatorii experimentați folosesc una în aproape fiecare script non-trivial. Modelul def main() aduce ordine într-un fișier și face codul sigur pentru reutilizare. Iată principalele motive pentru care îl folosești:
- Punct de intrare clar: O funcție main() indică oricărui cititor exact unde începe programul, astfel încât logica este ușor de urmărit.
- Module reutilizabile: Code protejat de `if __name__ == “__main__”` rulează doar la execuție directă, astfel încât alte fișiere pot importa funcțiile dvs. fără efecte secundare.
- Domeniu de aplicare local: Variabilele create în cadrul funcției main() rămân locale, ceea ce evită coliziunile accidentale cu nume globale din alte părți ale modulului.
- Testare mai ușoară: Izolarea logicii în main() permite unei suite de teste să o apeleze direct și să verifice rezultatul.
- Convenție comună: O funcție main() este un semnal larg recunoscut al punctului de intrare în program, care îmbunătățește mentenabilitatea în cadrul echipelor.
Pe scurt, o funcție main() este opțională în Python, dar menține programele mai mari lizibile, testabile și în siguranță pentru import.
Variabila __name__ și Python Module
Pentru a înțelege importanța variabilei __name__ în Python metoda funcției principale, 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 luați în considerare, codul este importat ca modul
import MainFunction
print("done")
Iată explicația codului: Ca C, Python folosește == pentru comparație în timp ce = pentru atribuire. Python interpretul folosește funcția principală în două moduri
rulare directă:
- __name__=__main__
- if statement == True, iar 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ă că funcția principală este executată doar ca rulare directă, nu atunci când este importată ca modul.
Exemplele de mai sus sunt Python 3 coduri, 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"
In Python 3, nu trebuie să utilizați if__name. Funcționează și următorul cod
def main():
print("Hello World!")
main()
print("Guru99")
Notă: Asigurați-vă că, după definirea funcției principale, lăsați o indentare și nu declarați codul chiar sub funcția def main(): altfel, va da o eroare de indentare.
Cum se transmit argumente din linia de comandă către Python functie principala
O funcție main() este locul natural pentru gestionarea datelor de intrare transmise de un utilizator pe linia de comandă. Python stochează aceste valori în lista sys.argv, pe care o furnizează modulul standard sys. Primul element, sys.argv[0], este numele scriptului, iar fiecare valoare care urmează este un argument furnizat de utilizator.
Următorul exemplu citește și afișează argumente din linia de comandă din interiorul unei funcții main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Dacă salvați fișierul ca script.py și rulați script python.py alfa beta, programul afișează numele scriptului și lista ['alpha', 'beta']. Deoarece valorile ajung în interiorul funcției main(), logica rămâne organizată și ușor de testat.
Iată câteva sfaturi practice atunci când lucrați cu input din linia de comandă:
- Decupează numele scriptului: Folosește sys.argv[1:] pentru a citi doar argumentele introduse de utilizator.
- Folosește argparse pentru instrumente reale: Modulul argparse încorporat analizează steagurile, opțiunile și textul de ajutor mult mai sigur decât citirea manuală a fișierului sys.argv.
- Returnează un cod de ieșire: Încadrați apelul în sys.exit(main()), astfel încât valoarea returnată de main() să devină starea de ieșire a procesului.
- Validare anticipată: Verificați numărul și tipul argumentelor de la începutul funcției main() înainte de a rula restul programului.
Acest model transformă un script simplu într-un instrument fiabil de linie de comandă în timp ce keeping fiecare pas în cadrul unei singure funcții main() testabile.
Python Funcția main() vs. alte limbaje de programare
Dezvoltatori care provin din C, C++, Java se așteaptă adesea o funcție main() obligatorie. Python funcționează diferit deoarece este un limbaj interpretat, deci interpretorul rulează pur și simplu un fișier de la linia de sus până la linia de jos. Funcția main() din Python este, prin urmare, o convenție mai degrabă decât o regulă.
- C, C++, C# și Java: O funcție main() este un punct de intrare necesar. Runtime-ul o apelează automat și poate exista doar unul per program.
- Python: Nu este necesară nicio funcție main(). Execuția începe la prima linie a fișierului, iar funcția def main() rulează numai dacă este apelată de codul dvs.
- Gardianul: Blocul if __name__ == „__main__” dă Python un scop similar cu o funcție main() compilată, marcând codul care ar trebui să ruleze numai atunci când fișierul este programul principal.
Așadar, în timp ce alte limbaje impun un punct de intrare main(), Python îți lasă alegerea, oferind aceeași claritate prin convenție în loc de o regulă de compilare.




