Python Funzione e metodo principali: comprendere def Main()
โก Riepilogo intelligente
Python La funzione main segna il punto di partenza da cui l'interprete inizia l'esecuzione di un programma. Definita con def main() e abbinata alla condizione if __name__ == โ__main__โ, separa il codice riutilizzabile del modulo dall'esecuzione di script autonomi.

Cosa รจ Python Funzione principale?
Migliori Python funzione principale รจ il punto di partenza di qualsiasi programma. Quando il programma viene eseguito, il Python L'interprete esegue il codice in sequenza. La funzione principale viene eseguita solo quando viene eseguita come Python programma. La funzione principale non verrร eseguita se importato come modulo.
In cosa consiste la funzione def main() PythonPer comprendere ciรฒ, si consideri il seguente codice di esempio, che fa parte del nucleo Python programmazione basi:
def main() Esempio 1
def main():
print ("Hello World!")
print ("Guru99")
Qui abbiamo due pezzi di stampa: uno รจ definito all'interno della funzione principale che รจ "Hello World!" e l'altro รจ indipendente, che รจ "Guru99โ. Quando esegui la funzione def main ():
- Soltanto "Guru99โ stampa
- e non il codice "Hello World!"
ร perchรฉ non abbiamo dichiarato la chiamata funzione โif__name__== โ__main__โ.
ร importante che dopo aver definito la funzione principale, chiami il codice con if__name__== โ__main__โ e poi esegui il codice, solo allora otterrai l'output โhello world!โ nella console di programmazione. Considera il seguente codice
def main() Esempio 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruIn questo caso viene stampato 99.
Ecco la spiegazione,
- Quando Python l'interprete legge un file sorgente, eseguirร tutto il codice trovato in esso.
- Quando Python esegue il "file sorgente" come programma principale, imposta la variabile speciale (__name__) in modo che abbia un valore ("__main__").
- Quando esegui la funzione main in Python, leggerร l'istruzione "if" e controllerร se __name__ รจ uguale a __main__.
- In Python โse__nome__== โ__principale__โ ti permette di eseguire il Python file come moduli riutilizzabili o programmi autonomi.
Perchรฉ utilizzare una funzione main() in Python?
Python Non ti obbliga a scrivere una funzione main, eppure gli sviluppatori esperti la utilizzano in quasi tutti gli script non banali. Il pattern def main() mette ordine in un file e rende il codice riutilizzabile in modo sicuro. Ecco i principali motivi per utilizzarlo:
- Punto di ingresso chiaro: La funzione main() indica a chiunque legga esattamente dove inizia il programma, rendendo cosรฌ la logica facile da seguire.
- Moduli riutilizzabili: Code protetto da if __name__ == โ__main__โ viene eseguito solo in caso di esecuzione diretta, in modo che altri file possano importare le tue funzioni senza effetti collaterali.
- Ambito locale: Le variabili create all'interno di main() rimangono locali, evitando cosรฌ conflitti accidentali con nomi globali in altre parti del modulo.
- Test piรน semplici: Isolare la logica nella funzione main() permette a una suite di test di richiamarla direttamente e verificarne il risultato.
- Convenzione condivisa: La funzione main() รจ un segnale ampiamente riconosciuto del punto di ingresso del programma, che migliora la manutenibilitร tra i team.
In breve, una funzione main() รจ facoltativa in Pythonma mantiene i programmi piรน grandi leggibili, testabili e sicuri da importare.
La variabile __name__ e Python Moduli
Per comprendere l'importanza della variabile __name__ in Python metodo della funzione principale, considerare il seguente codice:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Consideriamo ora che il codice viene importato come modulo
import MainFunction
print("done")
Ecco la spiegazione del codice: Come C, Python usa == per il confronto mentre = per l'assegnazione. Python l'interprete utilizza la funzione main in due modi
corsa diretta:
- __nome__=__principale__
- if istruzione == True e lo script in _main_verrร eseguito
importare come modulo
- __name__= nome file del modulo
- if istruzione == false e lo script in __main__ non verrร eseguito
Quando il codice viene eseguito, controllerร il nome del modulo con "if". Questo meccanismo garantisce che la funzione principale venga eseguita solo come esecuzione diretta e non quando importata come modulo.
Gli esempi sopra riportati sono Python 3 codici, se vuoi usarli Python 2, si prega di considerare il seguente codice
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, non รจ necessario usare if__name. Anche il seguente codice funziona
def main():
print("Hello World!")
main()
print("Guru99")
Nota: Dopo aver definito la funzione principale, assicurati di lasciare un rientro e di non dichiarare il codice subito sotto la funzione def main(): altrimenti verrร restituito un errore di rientro.
Come passare gli argomenti della riga di comando al Python Funzione principale()
La funzione main() รจ il luogo naturale in cui gestire l'input che un utente passa dalla riga di comando. Python Questi valori vengono memorizzati nell'elenco sys.argv, fornito dal modulo sys standard. Il primo elemento, sys.argv[0], รจ il nome dello script, e ogni valore successivo รจ un argomento fornito dall'utente.
L'esempio seguente legge e stampa gli argomenti della riga di comando dall'interno di una funzione main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Se salvi il file come script.py e lo esegui script python.py alpha betaIl programma stampa il nome dello script e l'elenco ['alpha', 'beta']. Poichรฉ i valori arrivano all'interno di main(), la logica rimane organizzata e facile da testare.
Ecco alcuni consigli pratici per lavorare con l'input da riga di comando:
- Taglia il nome della sceneggiatura: Utilizzare sys.argv[1:] per leggere solo gli argomenti digitati dall'utente.
- Per strumenti piรน efficaci, usa argparse: Il modulo argparse integrato analizza flag, opzioni e testo della guida in modo molto piรน sicuro rispetto alla lettura manuale di sys.argv.
- Restituisci un codice di uscita: Avvolgi la chiamata come sys.exit(main()) in modo che il valore di ritorno di main() diventi lo stato di uscita del processo.
- Convalidare in anticipo: Prima di eseguire il resto del programma, verifica il numero e il tipo di argomenti all'inizio della funzione main().
Questo modello trasforma un semplice script in uno strumento affidabile da riga di comando, mantenendolo al contempoping ogni passaggio all'interno di un'unica funzione main() testabile.
Python Funzione main() a confronto con altri linguaggi di programmazione
Sviluppatori provenienti da C, C++, o Java Spesso ci si aspetta una funzione main() obbligatoria. Python funziona in modo diverso perchรฉ รจ un linguaggio interpretato, quindi l'interprete esegue semplicemente un file dalla riga superiore a quella inferiore. La funzione main() in Python Si tratta quindi di una convenzione piuttosto che di una regola.
- C, C++, C# e Java: La funzione main() รจ un punto di ingresso obbligatorio. Il runtime la richiama automaticamente e puรฒ essercene solo una per programma.
- Python: Non รจ necessaria alcuna funzione main(). L'esecuzione inizia dalla prima riga del file e la funzione def main() viene eseguita solo se il codice la chiama.
- La guardia: Il blocco if __name__ == โ__main__โ fornisce Python uno scopo simile a quello di una funzione main() compilata, ovvero contrassegnare il codice che deve essere eseguito solo quando il file รจ il programma principale.
Quindi, mentre altri linguaggi impongono un punto di ingresso main(), Python lascia a te la scelta, offrendo la stessa chiarezza attraverso una convenzione anzichรฉ una regola del compilatore.




