English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Python

Controllo dei flussi Python

Funzione in Python

Tipi di dati in Python

Operazioni di file Python

Oggetti e classi Python

Data e ora Python

Conoscenze avanzate Python

Manuale di riferimento Python

Funzione main() in Python

In questo tutorial, impareremo come utilizzare l'attributo __name__ del programma Python per eseguirlo dinamicamente in diversi contesti.

Cos'è la funzione main() in Python?

Alcuni linguaggi di programmazione hanno una funzione speciale chiamata main(), che è il punto di esecuzione del file del programma. Tuttavia, l'interprete Python esegue ogni riga del file dall'inizio alla fine, senza funzione main() esplicita.

Python fornisce altre convenzioni per definire il punto di esecuzione. Una di queste è utilizzare la funzione main() del file Python e l'attributo __name__.

Cos'è __name__ in Python?

__name__ è una variabile speciale interna a Python che mostra il nome del modulo corrente.

a seconda della posizione in cui si esegue il file Python, può avere valori diversi. Vediamo un esempio.

come script per eseguire un file Python

supponiamo di avere un file chiamatohelloworld.pyil file Python, il cui contenuto è il seguente:

print(__name__)

se eseguiamo da riga di comandohelloworld.pysebbene esso venga eseguito come script Python. Possiamo eseguire programmi Python utilizzando i seguenti comandi:

python helloworld.py
def foo():
    str="__main__"
    print(str);
if __name__ == "__main__":
    foo()

Quando eseguiamo il programma come script, il valore della variabile __name__ viene impostato su__main__. Quindi, l'output del seguente programma sarà:

__main__

Eseguiamo un file Python come modulo

Possiamo anche eseguire un file Python come modulo. Per farlo, dobbiamo importare questo file in un altro programma Python. Vediamo un esempio.

Supponiamo che nel percorso dello stesso file heloworld.py ci sia un file chiamatomain.pyIl file Python. Ha il seguente contenuto:

import helloworld

Eseguiamo questo file e avremo l'output seguente:

helloworld

Ecco, possiamo vedere che l'importazione di un modulo esegue anche tutto il codice del file del modulo.

Ma, possiamo vedere che, invece di mostrare __main__Il programma mostrerà il nome del modulo, ovvero helloworld.

Questo perché, quando si esegue un file Python come modulo, il nome del modulo stesso viene assegnato alla variabile __name__.

Utilizzo della condizione if con __name__

Ora che abbiamo capito come la variabile __name__ assegna valori, possiamo utilizzare la clausola condizionale if per eseguire lo stesso file Python in contesti diversi.

Vediamo un esempio.

Supponiamo chehelloworld.pyIl contenuto del file viene modificato come segue:

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

Ora, quando lo eseguiamo come script tramite la riga di comando, l'output sarà:

Hello World

Ma, quando lo importiamomain.pyQuando il file viene eseguito come modulo, non viene visualizzato alcun output perché la funzione main() non viene chiamata.

Qui, abbiamo creato una funzione main() personalizzata nel file helloworld.py. Questa funzione viene eseguita solo quando il programma viene eseguito come script indipendente, non come modulo importato.

Questo è il metodo standard per definire esplicitamente la funzione main() in Python. È uno dei casi d'uso più popolari per la variabile __name__ del file Python.