I den här handledningen lär vi oss hur man använder ett Python-programmets __name__-attribut för att köra det dynamiskt i olika sammanhang.
Vad är huvudfunktionen () i Python?
Vissa programmeringsspråk har en speciell funktion som kallas main()exekveringspunkten för en programfil. Python-tolk kör dock varje rad seriellt från toppen av filen och har ingen uttrycklig main()funktion.
Python erbjuder andra konventioner för att definiera exekveringspunkten. En av dem använder main()funktionen och egenskapen __name__ för en pythonfil.
Vad är __name__ i Python?
Variabeln __name__ är en speciell inbyggd Python-variabel som visar namnet på den aktuella modulen.
Det har olika värden beroende på var vi kör Python-filen. Låt oss titta på ett exempel.
Kör Python-fil som ett skript
Anta att vi har en Python-fil som heter helloworld.py med följande innehåll:
print(__name__)
Om vi kör helloworld.py från kommandoraden, körs det som ett Python-skript. Vi kan köra Python-programmet med följande kommando:
$ python helloworld.py
När vi kör programmet som ett skript, är värdet på variabeln __name__ inställd på __main__. Så resultatet av följande program blir:
__main__
Kör Python-fil som en modul
Vi kan också köra en Python-fil som en modul. För detta måste vi importera den här filen till ett annat Python-program. Låt oss titta på ett exempel.
Antag att vi har en Python-fil som heter main.py i samma katalog som heloworld.py-filen. Den har följande innehåll:
import helloworld
När vi kör den här filen kommer vi att ha följande utdata:
Hej världen
Här kan vi se att import av en modul också kör hela koden i modulfilen.
Men vi kan se att i stället för att visa __main__, visar programmet namnet på modulen dvs helloworld.
Det beror på att namnet på själva modulen tilldelas variabeln __name__ i samband med att köra en Python-fil som en modul.
Använd om villkorligt med __name__
Nu när vi har förstått hur __name__-variabeln tilldelas värden, kan vi använda ifvillkorsklausulen för att köra samma Python-fil på olika sätt i olika sammanhang.
Låt oss titta på ett exempel.
Antag att vi ändrar innehållet i filen helloworld.py till följande:
def main(): print("Hello World") if __name__=="__main__": main()
Nu, när vi kör det som ett skript via kommandoraden, kommer utmatningen att vara:
Hej världen
Men när vi kör den som en modul genom att importera den till main.py- filen visas ingen utdata eftersom main()funktionen inte anropas.
Här har vi skapat en anpassad main()funktion i filen helloworld.py . Det körs bara när programmet körs som ett fristående skript och inte som en importerad modul.
Detta är det vanliga sättet att uttryckligen definiera main()funktionen i Python. Det är ett av de mest populära användningsfallet för __name__-variabel i en Python-fil.








