Glavna funkcija Pythona

V tej vadnici se bomo naučili, kako uporabiti atribut __name__ programa Python za dinamično zagon v različnih kontekstih.

Kaj je glavna () funkcija v Pythonu?

Nekateri programski jeziki imajo posebno funkcijo, main()ki je točka izvajanja programske datoteke. Tolmač Python pa zaporedno zažene vsako vrstico z vrha datoteke in nima eksplicitne main()funkcije.

Python ponuja druge konvencije za določitev izvedbene točke. Eden od njih je uporaba main()funkcije in lastnosti __name__ datoteke python.

Kaj je __name__ v Pythonu?

Spremenljivka __name__ je posebna vgrajena spremenljivka Python, ki prikazuje ime trenutnega modula.

Ima različne vrednosti, odvisno od tega, kje izvajamo datoteko Python. Oglejmo si primer.

Zagon datoteke Python kot skripta

Recimo, da imamo datoteko Python, imenovano helloworld.py, z naslednjo vsebino:

 print(__name__) 

Če iz ukazne vrstice zaženemo helloworld.py , potem deluje kot skript Python. Program Python lahko zaženemo z naslednjim ukazom:

$ python helloworld.py

Ko zaženemo program kot skript, je vrednost spremenljivke __name__ nastavljena na __main__. Rezultat naslednjega programa bo:

 __glavna__ 

Zagon datoteke Python kot modula

Datoteko Python lahko zaženemo tudi kot modul. Za to moramo to datoteko uvoziti v drug program Python. Oglejmo si primer.

Recimo, da imamo datoteko Python, imenovano main.py, v istem imeniku kot datoteka heloworld.py. Ima naslednjo vsebino:

 import helloworld 

Ko zaženemo to datoteko, bomo imeli naslednji izhod:

 Pozdravljen, svet 

Tu lahko vidimo, da uvoz modula zažene tudi vso kodo v datoteki modula.

Vendar lahko vidimo, da program namesto prikaza __main__ prikaže ime modula, tj. Helloworld.

To je zato, ker je v okviru izvajanja datoteke Python kot modula ime samega modula dodeljeno spremenljivki __name__.

Uporaba, če je pogojno z __name__

Zdaj, ko smo razumeli, kako se spremenljivki __name__ dodeljujejo vrednosti, lahko s ifpogojno klavzulo različno zaženemo isto datoteko Python v različnih kontekstih.

Oglejmo si primer.

Denimo, da spremenimo vsebino datoteke helloworld.py na naslednje:

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

Zdaj, ko ga zaženemo kot skript prek ukazne vrstice, bo rezultat:

 Pozdravljen, svet 

Ko pa ga zaženemo kot modul tako, da ga uvozimo v datoteko main.py , izhod ni prikazan, ker main()funkcija ni poklicana.

Tu smo main()v datoteki helloworld.py ustvarili funkcijo po meri . Izvede se le, če se program zažene kot samostojni skript in ne kot uvoženi modul.

To je standardni način za eksplicitno definiranje main()funkcije v Pythonu. Je eden izmed najbolj priljubljenih primerov uporabe spremenljivke __name__ datoteke Python.

Zanimive Članki...