Funcția principală Python

În acest tutorial, vom învăța cum să folosim atributul __name__ al unui program Python pentru al rula dinamic în diferite contexte.

Care este funcția main () în Python?

Unele limbaje de programare au o funcție specială numită main()care este punctul de execuție pentru un fișier de program. Cu toate acestea, interpretul Python rulează fiecare linie în serie din partea de sus a fișierului și nu are main()funcție explicită .

Python oferă alte convenții pentru a defini punctul de execuție. Una dintre ele folosește main()funcția și proprietatea __name__ a unui fișier python.

Ce este __name__ în Python?

Variabila __name__ este o variabilă Python încorporată specială care arată numele modulului curent.

Are valori diferite în funcție de locul în care executăm fișierul Python. Să vedem un exemplu.

Rularea fișierului Python ca script

Să presupunem că avem un fișier Python numit helloworld.py cu următorul conținut:

 print(__name__) 

Dacă rulăm helloworld.py din linia de comandă, atunci rulează ca un script Python. Putem rula programul Python folosind următoarea comandă:

$ python helloworld.py

Când rulăm programul ca script, valoarea variabilei __name__ este setată la __main__. Deci, rezultatul următorului program va fi:

 __principal__ 

Rularea fișierului Python ca modul

De asemenea, putem rula un fișier Python ca modul. Pentru aceasta, trebuie să importăm acest fișier într-un alt program Python. Să vedem un exemplu.

Să presupunem că avem un fișier Python numit main.py în același director cu fișierul heloworld.py. Are următorul conținut:

 import helloworld 

Când rulăm acest fișier, vom avea următoarea ieșire:

 Salut Lume 

Aici, putem vedea că importarea unui modul rulează tot codul din fișierul modulului.

Dar, putem vedea că, în loc să afișeze __main__, programul afișează numele modulului, adică helloworld.

Acest lucru se datorează faptului că, în contextul executării unui fișier Python ca modul, numele modulului în sine este atribuit variabilei __name__.

Folosind if condițional cu __name__

Acum că am înțeles cum variabilei __name__ i se atribuie valori, putem folosi ifclauza condițională pentru a rula același fișier Python diferit în contexte diferite.

Să vedem un exemplu.

Să presupunem că schimbăm conținutul fișierului helloworld.py la următorul:

 def main(): print("Hello World") if __name__=="__main__": main() 

Acum, când îl rulăm ca un script prin linia de comandă, ieșirea va fi:

 Salut Lume 

Cu toate acestea, când îl rulăm ca un modul importându-l în fișierul main.py , nu este afișată nicio ieșire, deoarece main()funcția nu este apelată.

Aici, am creat o main()funcție personalizată în fișierul helloworld.py . Se execută numai atunci când programul este rulat ca un script independent și nu ca un modul importat.

Acesta este modul standard de a defini în mod explicit main()funcția în Python. Este unul dintre cele mai populare cazuri de utilizare a variabilei __name__ a unui fișier Python.

Articole interesante...