Hlavná funkcia Pythonu

V tomto tutoriáli sa dozvieme, ako používať atribút __name__ programu Python na jeho dynamické spustenie v rôznych kontextoch.

Aká je hlavná () funkcia v Pythone?

Niektoré programovacie jazyky majú špeciálnu funkciu, main()ktorá sa nazýva bod vykonania programového súboru. Tlmočník jazyka Python však spúšťa každý riadok sériovo od hornej časti súboru a nemá explicitnú main()funkciu.

Python ponúka ďalšie konvencie na definovanie bodu vykonania. Jedným z nich je použitie main()funkcie a vlastnosti __name__ súboru python.

Čo je __name__ v Pythone?

Premenná __name__ je špeciálna zabudovaná premenná Pythonu, ktorá zobrazuje názov aktuálneho modulu.

Má rôzne hodnoty v závislosti od toho, kde spustíme súbor Python. Pozrime sa na príklad.

Spustenie súboru Python ako skriptu

Predpokladajme, že máme súbor Python s názvom helloworld.py s nasledujúcim obsahom:

 print(__name__) 

Ak spustíme helloworld.py z príkazového riadku, potom beží ako skript v Pythone. Program Python môžeme spustiť pomocou nasledujúceho príkazu:

$ python helloworld.py

Keď program spustíme ako skript, hodnota premennej __name__ je nastavená na __main__. Výstup nasledujúceho programu bude:

 __hlavné__ 

Spustenie súboru Python ako modulu

Môžeme tiež spustiť súbor Python ako modul. Z tohto dôvodu musíme tento súbor importovať do iného programu Python. Pozrime sa na príklad.

Predpokladajme, že máme súbor Python s názvom main.py v rovnakom adresári ako súbor heloworld.py. Má nasledujúci obsah:

 import helloworld 

Keď spustíme tento súbor, budeme mať nasledujúci výstup:

 helloworld 

Tu vidíme, že import modulu tiež spustí celý kód v súbore modulu.

Vidíme však, že namiesto zobrazenia __main__ program zobrazuje názov modulu, tj. Helloworld.

Je to tak preto, lebo v súvislosti so spustením súboru Python ako modulu je premennej __name__ priradený názov samotného modulu.

Použitie, ak je podmienené, s __name__

Teraz, keď sme pochopili, ako sa premennej __name__ priraďujú hodnoty, môžeme pomocou ifpodmienenej klauzuly spustiť ten istý súbor Python rôzne v rôznych kontextoch.

Pozrime sa na príklad.

Predpokladajme, že zmeníme obsah súboru helloworld.py na nasledujúci:

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

Teraz, keď ho spustíme ako skript pomocou príkazového riadku, bude výstup:

 Ahoj svet 

Keď ho však spustíme ako modul tak, že ho importujeme do súboru main.py , nezobrazí sa žiadny výstup, pretože táto main()funkcia sa nehovorí.

Tu sme vytvorili vlastnú main()funkciu v súbore helloworld.py . Vykonáva sa iba vtedy, keď je program spustený ako samostatný skript, a nie ako importovaný modul.

Toto je štandardný spôsob, ako explicitne definovať main()funkciu v Pythone. Je to jeden z najpopulárnejších prípadov použitia premennej __name__ v súbore Python.

Zaujímavé články...