Python hovedfunktion

I denne vejledning lærer vi, hvordan man bruger et Python-programs __name__-attribut til at køre det dynamisk i forskellige sammenhænge.

Hvad er hovedfunktionen () i Python?

Nogle programmeringssprog har en speciel funktion kaldet main()udførelsespunktet for en programfil. Python-tolk kører imidlertid hver linje serielt fra toppen af ​​filen og har ingen eksplicit main()funktion.

Python tilbyder andre konventioner til at definere udførelsespunktet. En af dem bruger main()funktionen og egenskaben __name__ for en python-fil.

Hvad er __name__ i Python?

Variablen __name__ er en speciel indbygget Python-variabel, der viser navnet på det aktuelle modul.

Det har forskellige værdier afhængigt af hvor vi udfører Python-filen. Lad os se på et eksempel.

Kørsel af Python-fil som et script

Antag, at vi har en Python-fil kaldet helloworld.py med følgende indhold:

 print(__name__) 

Hvis vi kører helloworld.py fra kommandolinjen, kører den som et Python-script. Vi kan køre Python-programmet ved hjælp af følgende kommando:

$ python helloworld.py

Når vi kører programmet som et script, er værdien af ​​variablen __name__ indstillet til __main__. Så resultatet af det følgende program vil være:

 __hoved__ 

Kører Python-fil som et modul

Vi kan også køre en Python-fil som et modul. Til dette er vi nødt til at importere denne fil til et andet Python-program. Lad os se på et eksempel.

Antag, at vi har en Python-fil kaldet main.py i samme bibliotek som heloworld.py-filen. Det har følgende indhold:

 import helloworld 

Når vi kører denne fil, har vi følgende output:

 Hej Verden 

Her kan vi se, at import af et modul også kører al kode i modulfilen.

Men vi kan se, at i stedet for at vise __main__, viser programmet navnet på modulet, dvs. helloworld.

Det skyldes, at navnet på selve modulet i forbindelse med kørsel af en Python-fil som et modul er tildelt variablen __name__.

Brug hvis betinget med __name__

Nu hvor vi har forstået, hvordan __name__-variablen tildeles værdier, kan vi bruge den ifbetingede klausul til at køre den samme Python-fil forskelligt i forskellige sammenhænge.

Lad os se på et eksempel.

Antag, at vi ændrer indholdet af helloworld.py- filen til følgende:

 def main(): print("Hello World") if __name__=="__main__": main() 

Nu, når vi kører det som et script via kommandolinjen, vil output være:

 Hej Verden 

Men når vi kører det som et modul ved at importere det til main.py- filen, vises der ingen output, da main()funktionen ikke kaldes.

Her har vi oprettet en brugerdefineret main()funktion i helloworld.py- filen. Det udføres kun, når programmet køres som et enkeltstående script og ikke som et importeret modul.

Dette er standardmetoden til eksplicit at definere main()funktionen i Python. Det er en af ​​de mest populære brugstilfælde af __name__-variablen i en Python-fil.

Interessante artikler...