Funzione principale Python & Esempio di metodo: capire __main

Sommario:

Anonim

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.