Hlavní funkce je jako vstupní bod programu. Interpret Pythonu však spouští kód hned od prvního řádku. Provádění kódu začíná od počátečního řádku a pokračuje řádek po řádku. Nezáleží na tom, kde je hlavní funkce přítomna nebo je přítomna nebo není.
Vzhledem k tomu, že neexistujemain()>funkce v Pythonu, když je příkaz ke spuštění programu Python zadán interpretu, má být proveden kód, který je na úrovni 0 odsazení. Předtím však definuje několik speciálních proměnných.__name__>je jedna taková speciální proměnná. Pokud je zdrojový soubor spuštěn jako hlavní program, nastaví interpret__name__>proměnná, aby měla hodnotu__main__>. Pokud je tento soubor importován z jiného modulu,__name__>bude nastaveno na název modulu.
__name__>je vestavěná proměnná, která se vyhodnocuje podle názvu aktuálního modulu.
Příklad:
# Python program to demonstrate> # main() function> > > print>(>'Hello'>)> > # Defining main function> def> main():> >print>(>'hey there'>)> > > # Using the special variable> # __name__> if> __name__>=>=>'__main__'>:> >main()> |
>
>
Výstup:
Hello hey there>
Když je výše uvedený program spuštěn, interpret deklaruje počáteční hodnotu name jako main. Když interpret dosáhne příkazu if, zkontroluje hodnotu name a když je hodnota if pravdivá, spustí funkci main, jinak se funkce main neprovede.
Hlavní funkce jako modul
Nyní, když importujeme skript Python jako modul__name__>proměnná získá stejnou hodnotu jako název importovaného skriptu python.
Příklad: Uvažujme, že existují dva soubory (File1.py a File2.py). Soubor1 je následující.
jquery po kliknutí
# File1.py> > print>(>'File1 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File1 is being run directly'>)> else>:> >print>(>'File1 is being imported'>)> |
>
>
Výstup:
File1 __name__ = __main__ File1 is being run directly>
Nyní, když je soubor File1.py importován do souboru File2.py, hodnota __name__ se změní.
# File2.py> > import> File1> > print>(>'File2 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File2 is being run directly'>)> else>:> >print>(>'File2 is being imported'>)> |
>
datové struktury v Javě
>
Výstup:
File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly>
Jak je vidět výše, když je File1.py spuštěn přímo, interpret nastaví__name__>variabilní jako__main__>a když je spuštěn přes File2.py importem, proměnná __name__ je nastavena jako název skriptu python, tj. File1. Dá se tedy říci, že pokud __name__ == __main__ je část programu, která se spustí, když je skript spuštěn z příkazové řádky pomocí příkazu jako Python File1.py.