Wat is de hoofdfunctie van Python?
De hoofdfunctie van Python is een startpunt van elk programma. Wanneer het programma wordt uitgevoerd, voert de Python-interpreter de code opeenvolgend uit. De hoofdfunctie wordt alleen uitgevoerd als deze wordt uitgevoerd als een Python-programma. Het zal de hoofdfunctie niet uitvoeren als het als een module is geïmporteerd.
Wat is de def main () -functie in Python? Overweeg de volgende voorbeeldcode om dit te begrijpen
def main():print ("hello world!")print ("Guru99")
Hier hebben we twee afdrukken: een is gedefinieerd binnen de hoofdfunctie die "Hallo wereld" is en de andere is onafhankelijk, dat is "Guru99". Wanneer u de functie def main () uitvoert:
- Alleen "Guru99" wordt afgedrukt
- en niet de code "Hallo wereld."
Het is omdat we de aanroepfunctie "if__name __ ==" __main__ "niet hebben gedeclareerd.
Het is belangrijk dat u na het definiëren van de hoofdfunctie de code aanroept met if__name __ == "__main__" en vervolgens de code uitvoert, alleen dan krijgt u de uitvoer "hallo wereld!" in de programmeerconsole. Beschouw de volgende code
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
In dit geval wordt Guru99 afgedrukt.
Hier is de uitleg,
- Wanneer Python-interpreter een bronbestand leest, voert het alle code uit die erin is gevonden.
- Als Python het "bronbestand" als het hoofdprogramma draait, stelt het de speciale variabele (__naam__) in op een waarde ("__main__").
- Wanneer je de hoofdfunctie in python uitvoert, zal het de "if" -instructie lezen en controleren of __name__ gelijk is aan __main__.
- In Python kunt u met "if__name __ ==" __main__ " de Python-bestanden uitvoeren als herbruikbare modules of als zelfstandige programma's.
De __name__ variabele en Python Module
Overweeg de volgende code om het belang van de __name__-variabele in de Python-hoofdfunctiemethode te begrijpen:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Bedenk nu dat code wordt geïmporteerd als een module
import MainFunctionprint("done")
Hier is de code-uitleg:
Net als C gebruikt Python == voor vergelijking while = voor toewijzing. Python-interpreter gebruikt de hoofdfunctie op twee manieren
directe vlucht:
- __naam __ = __ hoofd__
- if statement == True, en het script in _main_ zal worden uitgevoerd
importeren als module
- __name __ = bestandsnaam van de module
- if statement == false, en het script in __main__ zal niet worden uitgevoerd
Wanneer de code wordt uitgevoerd, wordt de modulenaam gecontroleerd met "if." Dit mechanisme zorgt ervoor dat de hoofdfunctie alleen als direct run wordt uitgevoerd en niet als deze als module wordt geïmporteerd.
Bovenstaande voorbeelden zijn Python 3-codes, als je Python 2 wilt gebruiken, overweeg dan de volgende code
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
In Python 3 hoef je if__name niet te gebruiken. De volgende code werkt ook
def main():print("Hello World!")main()print("Guru99")
Opmerking: zorg ervoor dat u na het definiëren van de hoofdfunctie een inspringing achterlaat en de code niet direct onder de functie def main (): declareert, anders geeft het een inspringingsfout.