logo

Hlavná funkcia Pythonu

Hlavná funkcia je ako vstupný bod programu. Interpret Pythonu však spúšťa kód hneď od prvého riadku. Vykonávanie kódu začína od štartovacieho riadku a prechádza riadok po riadku. Nezáleží na tom, kde je hlavná funkcia prítomná alebo je prítomná alebo nie.

Keďže neexistuje žiadnamain()>funkcia v Pythone, keď je príkaz na spustenie programu Python zadaný interpretovi, vykoná sa kód, ktorý je na úrovni 0 odsadenia. Predtým však zadefinuje niekoľko špeciálnych premenných.__name__>je jedna taká špeciálna premenná. Ak je zdrojový súbor spustený ako hlavný program, interpret nastaví__name__>premenná, aby mala hodnotu__main__>. Ak sa tento súbor importuje z iného modulu,__name__>bude nastavený na názov modulu.
__name__>je vstavaná premenná, ktorá sa vyhodnocuje podľa názvu aktuálneho modulu.



Prí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ýkon:

 Hello hey there>

Keď je vyššie uvedený program spustený, interpret deklaruje počiatočnú hodnotu name ako main. Keď tlmočník dosiahne príkaz if, skontroluje hodnotu name a keď je hodnota if pravdivá, spustí funkciu main, inak sa funkcia main nevykoná.

Hlavná funkcia ako modul

Teraz, keď importujeme skript Python ako modul__name__>premenná získa rovnakú hodnotu ako názov importovaného skriptu python.

Príklad: Uvažujme, že existujú dva súbory (File1.py a File2.py). Súbor1 je nasledovný.




# File1.py> > print>(>'File1 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File1 is being run directly'>)> else>:> >print>(>'File1 is being imported'>)>

>

>

Výkon:

 File1 __name__ = __main__ File1 is being run directly>

Teraz, keď sa súbor File1.py importuje do súboru File2.py, hodnota __name__ sa zmení.




np výplň

# File2.py> > import> File1> > print>(>'File2 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File2 is being run directly'>)> else>:> >print>(>'File2 is being imported'>)>

>

>

Výkon:

 File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly>

Ako je vidieť vyššie, keď je File1.py spustený priamo, interpret nastaví__name__>variabilný ako__main__>a keď sa spustí cez File2.py importovaním, premenná __name__ sa nastaví ako názov skriptu python, t.j. File1. Dá sa teda povedať, že ak __name__ == __main__ je časť programu, ktorá sa spustí pri spustení skriptu z príkazového riadku pomocou príkazu ako Python File1.py.