Cos'è la funzione principale di Python?
La funzione principale di Python è un punto di partenza di qualsiasi programma. Quando il programma viene eseguito, l'interprete Python esegue il codice in sequenza. La funzione principale viene eseguita solo quando viene eseguita come un programma Python. Non eseguirà la funzione principale se importata come modulo.
Qual è la funzione def main () in Python? Per capirlo, considera il seguente codice di esempio
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 ():
- Viene stampato solo "Guru99"
- e non il codice "Hello World".
È perché non abbiamo dichiarato la funzione di chiamata "if__name __ ==" __main__ ".
È importante che dopo aver definito la funzione principale, chiami il codice con if__name __ == "__main__" e quindi esegui il codice, solo allora otterrai l'output "ciao mondo!" nella console di programmazione. Considera il codice seguente
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 è stampato in questo caso.
Ecco la spiegazione,
- Quando l'interprete Python 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 verificherà se __name__ è uguale a __main__.
- In Python "if__name __ ==" __main__ " consente di eseguire i file Python sia come moduli riutilizzabili che come programmi autonomi.
La variabile __name__ e il modulo Python
Per comprendere l'importanza della variabile __name__ nel metodo della funzione principale di Python, considera il codice seguente:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Ora considera, il codice viene importato come modulo
import MainFunctionprint("done")
Ecco la spiegazione del codice:
Come C, Python usa == per il confronto mentre = per l'assegnazione. L'interprete Python utilizza la funzione principale in due modi
esecuzione diretta:
- __name __ = __ main__
- istruzione if == True, e lo script in _main_ verrà eseguito
importare come modulo
- __name __ = nome del 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, non quando importata come modulo.
Gli esempi sopra sono codici Python 3, se vuoi usare Python 2, considera il seguente codice
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
In Python 3, non è necessario utilizzare if__name. Funziona anche il codice seguente
def main():print("Hello World!")main()print("Guru99")
Nota: assicurati che dopo aver definito la funzione main, lasci un po 'di rientro e non dichiari il codice subito sotto la funzione def main (): altrimenti, darà un errore di rientro.