Hlavní funkce Pythonu

V tomto kurzu se naučíme, jak používat atribut __name__ programu Python k jeho dynamickému spuštění v různých kontextech.

Jaká je funkce main () v Pythonu?

Některé programovací jazyky mají speciální funkci, main()která se nazývá bod provádění souboru programu. Interpret Pythonu však spouští každý řádek sériově od horní části souboru a nemá žádnou explicitní main()funkci.

Python nabízí další konvence k definování bodu spuštění. Jedním z nich je použití main()funkce a vlastnosti __name__ souboru pythonu.

Co je __name__ v Pythonu?

Proměnná __name__ je speciální vestavěná proměnná Pythonu, která zobrazuje název aktuálního modulu.

Má různé hodnoty v závislosti na tom, kde spustíme soubor Pythonu. Podívejme se na příklad.

Spuštění souboru Pythonu jako skriptu

Předpokládejme, že máme soubor Pythonu s názvem helloworld.py s následujícím obsahem:

 print(__name__) 

Pokud spustíme helloworld.py z příkazového řádku, pak běží jako skript v Pythonu. Program Python můžeme spustit pomocí následujícího příkazu:

$ python helloworld.py

Když spustíme program jako skript, hodnota proměnné __name__ je nastavena na __main__. Výstup následujícího programu tedy bude:

 __hlavní__ 

Spuštění souboru Pythonu jako modulu

Můžeme také spustit modul Python jako modul. Za tímto účelem musíme tento soubor importovat do jiného programu Pythonu. Podívejme se na příklad.

Předpokládejme, že máme soubor Python s názvem main.py ve stejném adresáři jako soubor heloworld.py. Má následující obsah:

 import helloworld 

Když spustíme tento soubor, budeme mít následující výstup:

 Ahoj světe 

Tady vidíme, že import modulu také spustí veškerý kód v souboru modulu.

Ale vidíme, že místo zobrazení __main__ program zobrazuje název modulu, tj. Helloworld.

Je to proto, že v kontextu spouštění souboru Pythonu jako modulu je proměnné __name__ přiřazen název samotného modulu.

Použití, pokud je podmíněné s __name__

Nyní, když jsme pochopili, jak jsou proměnné __name__ přiřazovány hodnoty, můžeme použít ifpodmíněnou klauzuli ke spuštění stejného souboru Pythonu odlišně v různých kontextech.

Podívejme se na příklad.

Předpokládejme, že změníme obsah souboru helloworld.py na následující:

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

Nyní, když jej spustíme jako skript pomocí příkazového řádku, bude výstup:

 Ahoj světe 

Když jej však spustíme jako modul importem do souboru main.py , nezobrazí se žádný výstup, protože main()funkce není volána.

Zde jsme vytvořili vlastní main()funkci v souboru helloworld.py . Provádí se pouze v případě, že je program spuštěn jako samostatný skript, nikoli jako importovaný modul.

Toto je standardní způsob, jak explicitně definovat main()funkci v Pythonu. Je to jeden z nejpopulárnějších případů použití proměnné __name__ souboru Pythonu.

Zajímavé články...