Start | ifnamemain
 

if name main



if __name__ == "__main__":

Syftet med denna kodrad är att garantera att koden körs i en egen applikation.

Startpunkten

Det brukar se ut såhär ibland.
if __name__ == "__main__": print("Hello World. Nu kör du i kodeditorn!") if __name__ != "__main__": print("Nu klickade du kör på webbsidan!")
Prova att klicka på ovan kod och kör koden i kodeditorn. Klicka även kör här på webbsidan.

Vanligtvis när man kodar, så kodar man kanske på någon mindre grej och man testar denna mindre grej för sig själv. Men senare är tanken att koden ska kunna ingå i ett större projekt, som en modul.

När koden ingår som modul, då skall ju kanske inte de delar som testar kodmodulen ingå.

__name__


Detta är ett makro, som i huvudfilen kommer få namnet __main__ och om det istället ingår i en importerad fil, då kommer __name__ innehålla namnet på modulen.
print(__name__)
I denna miljö som du kör i din webbläsare, så kommer du få 2 olika svar här. Om du klickar "kör" på webbsidan (där du läser nu) så kommer __name__ troligtvis vara "kod_hidden12" eller något sånt. Om du däremot klickar på koden och tar upp kodeditorn och där klickar kör, då kommer __name__ == "__main__"

Om du gör ett projekt i visual studio code t.ex. så kommer du kunna importera egna moduler och kan testa detta mer utförligt.

Summa


Om ett skript med denna kodrad körs som en applikation, så kommer __name__ == "__main__"

Om skriptet istället är något som importeras, då kommer __name__ sättas till namnet på modulen.

Så du kan alltså göra kod som du själv kan köra, men som också av andra eller dig själv kan användas som en modul, en importerad fil, och då kan du vara säker på att denna if -sats kommer garantera att det som står under den kommer inte köras ifall filen används som importerad.
17.196893692017 ms