Python Huvudfunktion och metod Exempel: Förstå def Main()
Vad är Python Huvudfunktion?
Python huvudfunktion är en utgångspunkt för alla program. När programmet körs kör pythontolken koden sekventiellt. Huvudfunktionen exekveras endast när den körs som en Python programmera. Den kommer inte att köra 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() Exempel 1
def main(): print ("Hello World!") print ("Guru99")
Här har vi två stycken utskrifter - 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 samtalet funktionen "if__name__== "__main__".
Det är viktigt att du efter att ha definierat huvudfunktionen anropar koden med if__name__== "__main__" och sedan kör koden, först då får du utgången "hej världen!" i programmeringskonsolen. Tänk på följande kod
def main() Exempel 2
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 tolken läser en källfil, kommer den att köra all kod som finns i den.
- När Python kör "källfilen" som huvudprogram, den ställer in specialvariabeln (__name__) att ha ett värde ("__main__").
- När du kör huvudfunktionen i python kommer den att läsa "if"-satsen och kontrollera om __name__ är lika med __main__.
- In Python "if__name__== "__main__" låter dig köra Python filer antingen som återanvändbara moduler eller fristående program.
Variabeln __name__ och Python Modulerna
För att förstå vikten av variabeln __name__ i Python 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 MainFunction print("done")
Här är kodförklaringen:
Som C, Python använder == för jämförelse medan = för tilldelning. Python tolk använder huvudfunktionen på två sätt
direktkörning:
- __namn__=__huvud__
- if-satsen == True, och skriptet i _main_ kommer att köras
importera som en modul
- __name__= modulens filnamn
- if statement == false, och skriptet i __main__ kommer inte att köras
När koden exekveras 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 följande kod
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, du behöver inte använda if__name. Följande kod fungerar också
def main(): print("Hello World!") main() print("Guru99")
Notera: Se till att efter att ha definierat huvudfunktionen lämnar du ett indrag och inte deklarerar koden precis under funktionen def main(): annars kommer det att ge indragsfel.