Python's main-functie begrijpen: Praktische handleiding voor def main()
Wat is de Python main-functie?
De main-functie in Python markeert het startpunt van een programma. Wanneer een script direct wordt uitgevoerd, voert de interpreter code sequentieel uit. Code binnen def main() draait alleen als het script de primaire module is, niet wanneer het elders geïmporteerd wordt.
Laten we doorlopen met een duidelijk voorbeeld.
Voorbeeld 1: main() definiëren
def main(): print("Hello World!") print("Guru99") Het uitvoeren van dit bestand print alleen Guru99. De Hello World!-regel blijft binnen main() en wordt nooit aangeroepen.
Om main() uit te voeren wanneer het script als hoofdprogramma draait, moet je het bewaken met:
if __name__ == "__main__": main()
Nu gedraagt het script zich zoals verwacht.
Voorbeeld 2: Correct bewaken
def main(): print("Hello World!") if __name__ == "__main__": main() print("Guru99") Wanneer je dit bestand uitvoert, toont de console:
Hello World!
Guru99
Waarom werkt dit? De interpreter stelt de speciale variabele __name__ in op "__main__" wanneer een bestand direct wordt uitgevoerd. De bewaking controleert die voorwaarde voordat main() wordt aangeroepen.
De rol van __name__ en modules
Het begrijpen van __name__ is essentieel voor het schrijven van herbruikbare code.
def main(): print("hello world!") if __name__ == "__main__": main() print("Guru99") print("Waarde in ingebouwde variabele name is: ", __name__) Direct uitvoeren van het bestand print de twee berichten en __name__ als "__main__". Als je dit script importeert als module:
import mainfunctie print("klaar") zie je alleen klaar en __name__ zal de modulenaam weerspiegelen, dus main() voert niet automatisch uit.
Kortom:
- Directe uitvoering:
__name__ == "__main__"→main()draait. - Importeren als module:
__name__ != "__main__"→main()wordt overgeslagen.
Python 3 vereist if __name__ == "__main__": niet voor simpele scripts, maar het gebruik van de bewaking is een best practice, vooral wanneer het bestand herbruikbaar kan zijn. In Python 2 blijft de syntaxis hetzelfde, maar print-statements verschillen:
def main(): print "Hello World!" if __name__ == "__main__": main() print "Guru99"
In Python 3 kun je ook schrijven:
def main(): print("Hello World!") main() print("Guru99") Onthoud: houd altijd correcte inspringing na de def main():-regel om fouten te voorkomen.
Python
- Python Lambda Functies: Een praktische gids voor anonieme functies
- Python-generators: efficiënte iteratie en geavanceerde use cases
- Python-closures uitgelegd: hoe geneste functies variabelen vangen
- Python-decorators beheersen: functies verbeteren met expert-technieken
- Python's strip()-methode beheersen: Uitgebreide handleiding & praktische voorbeelden
- Python len(): Praktische handleiding voor het meten van objectlengtes
- Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
- Python lambda-functies beheersen: praktische voorbeelden & best practices
- Python round()-functie uitgelegd met praktische voorbeelden
- Python's map()-functie beheersen: syntaxis, voorbeelden en best practices
- Python's yield meesteren: Generator vs Return – Een praktische gids