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.




