Pythons huvudfunktion

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.

Intressanta artiklar...