La funzione principale di Python viene eseguita solo quando viene eseguito come programma Python. Come sapete, possiamo anche importare un programma Python come modulo, in quel caso il metodo principale di Python non dovrebbe essere eseguito.
Funzione principale di Python
La funzione principale è il punto di ingresso di qualsiasi programma. Ma l’interprete di Python esegue il codice del file sorgente in modo sequenziale e non chiama nessun metodo se non fa parte del codice. Ma se fa direttamente parte del codice, verrà eseguito quando il file viene importato come modulo. Ecco perché esiste una tecnica speciale per definire il metodo principale in un programma Python, in modo che venga eseguito solo quando il programma viene eseguito direttamente e non quando viene importato come modulo. Vediamo come definire la funzione principale di Python in un semplice programma. python_main_function.py
print("Hello")
print("__name__ value: ", __name__)
def main():
print("python main function")
if __name__ == '__main__':
main()
-
Quando viene eseguito un programma Python, l’interprete di Python inizia ad eseguire il codice al suo interno. Imposta anche alcuni valori impliciti di variabili, uno dei quali è
__name__
il cui valore viene impostato su__main__
. -
Per la funzione principale di Python, dobbiamo definire una funzione e poi usare la condizione
if __name__ == '__main__'
per eseguire questa funzione. -
Se il file di origine di Python viene importato come modulo, l’interprete Python imposta il valore di
__name__
al nome del modulo, quindi la condizione if restituirà false e il metodo principale non verrà eseguito. -
Python ci offre la flessibilità di mantenere qualsiasi nome per il metodo principale, tuttavia è una pratica consigliata chiamarlo metodo main(). Il codice seguente è perfettamente valido, ma non raccomandato.
def main1(): print("funzione principale di Python") if __name__ == '__main__': main1()
Ecco l’output quando il file sorgente python_main_function.py
viene eseguito.
Funzione principale Python come modulo
Adesso utilizziamo il file sorgente Python sopra come modulo ed importiamolo in un altro programma. python_import.py
import python_main_function
print("Done")
Quando viene eseguito il programma sopra, si ottiene l’output seguente.
Hello
__name__ value: python_main_function
Done
Nota che le prime due righe vengono stampate dal file sorgente python_main_function.py
. Nota che il valore di __name__
è diverso e quindi il metodo principale non viene eseguito. Ricorda che le istruzioni del programma Python vengono eseguite riga per riga, quindi è importante definire prima il metodo main()
prima della condizione if
per eseguire il metodo principale. Altrimenti, si otterrà un errore come NameError: name 'main' is not defined
. Questo è tutto sulla funzione principale di Python. Riferimento: Documenti Python
Source:
https://www.digitalocean.com/community/tutorials/python-main-function