if name is main

Op deze pagina:

    Iets wat vaak in Python scripts voorkomt is:

    
    def main:
        pass #...hier het eigenlijke script...
    
    if __name__ == '__main__':
        main()
    

    De variabele __name__ bevat __main__ als het script rechtstreeks wordt uitgevoerd.Indien het script via een import wordt uitgevoerd, dus indirect wordt uitgevoerd, bevat de variabele __name__ de naam van het importbestand (zonder de extentie .py en zonder de dubbele underscores). In dat geval zal de module main uit dat importbestand niet worden uitgevoerd door de bovenstaande code.

    Stel het importbestand heet extras.py, dan zal via:

    
    import extras
    

    de __main__ uit extras niet worden uitgevoerd, maar kan de __main__ in dit bestand toch vanuit het hoofdscript worden uitgevoerd door deze expliciet aan te roepen:

    
    
    extras.main()
    

    De code if __name__ == '__main__' kan dus gebruikt worden om de module main uit het script alleen uit te voeren als het script rechtstreeks uitgevoerd wordt. De eventuele overige instructies, die niet in de module main staan, zullen in dit geval altijd worden uitgevoerd, het maakt voor die instructies niet uit of het script direct of indirect wordt uitgevoerd.

     

    Verwante artikelen