Pythons huvudfunktion & Metodsexempel: Förstå __main

Innehållsförteckning:

Anonim

Vad är Pythons huvudfunktion?

Pythons huvudfunktion är en startpunkt för alla program. När programmet körs kör pythontolken koden sekventiellt. Huvudfunktionen körs endast när den körs som ett Python-program. Den kör inte huvudfunktionen om den importeras som en modul.

Vad är def main () -funktionen i Python? För att förstå detta, överväg följande exempelkod

def main():print ("hello world!")print ("Guru99")

Här har vi två tryckstycken - en definieras inom huvudfunktionen som är "Hello World" och den andra är oberoende, vilket är "Guru99". När du kör funktionen def main ():

  • Endast "Guru99" skrivs ut
  • och inte koden "Hello World."

Det beror på att vi inte deklarerade samtalsfunktionen "if__name __ ==" __main__ ".

Det är viktigt att du efter att ha definierat huvudfunktionen ringer koden med if__name __ == "__main__" och sedan kör koden, först då får du utdata "hej världen!" i programmeringskonsolen. Tänk på följande kod

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")

Guru99 skrivs ut i detta fall.

Här är förklaringen,

  • När Python-tolk läser en källfil körs all kod som finns i den.
  • När Python kör "källfilen" som huvudprogram ställer den in den speciella variabeln (__name__) så att den har ett värde ("__main__").
  • När du kör huvudfunktionen i python kommer den att läsa "if" -uttalandet och kontrollera om __name__ motsvarar __main__.
  • I Python kan "if__name __ ==" __main__ " låta dig köra Python-filerna antingen som återanvändbara moduler eller fristående program.

Variabeln __name__ och Python-modulen

För att förstå vikten av __name__-variabel i Pythons huvudfunktionsmetod, överväg följande kod:

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)

Tänk nu på att kod importeras som en modul

import MainFunctionprint("done")

Här är kodförklaringen:

Precis som C använder Python == för jämförelse medan = för tilldelning. Python-tolk använder huvudfunktionen på två sätt

direkt körning:

  • __namn __ = __ huvud__
  • if statement == True, och skriptet i _main_ kommer att köras

importera som en modul

  • __name __ = modulens filnamn
  • om uttalande == falskt, och skriptet i __main__ kommer inte att köras

När koden körs kommer den att söka efter modulnamnet med "if". Denna mekanism säkerställer att huvudfunktionen endast körs som direktkörning inte när den importeras som en modul.

Ovanstående exempel är Python 3-koder, om du vill använda Python 2, överväg att följa koden

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

I Python 3 behöver du inte använda if__name. Följande kod fungerar också

def main():print("Hello World!")main()print("Guru99")

Obs! Se till att du efter att ha definierat huvudfunktionen lämnar lite indrag och inte förklarar koden precis under def main (): -funktionen annars ger det indragfel.