logo

Python pagrindinė funkcija

Pagrindinė funkcija yra tarsi programos įėjimo taškas. Tačiau „Python“ interpretatorius paleidžia kodą nuo pat pirmosios eilutės. Kodo vykdymas prasideda nuo starto eilutės ir eina eilutė po eilutės. Nesvarbu, kur yra pagrindinė funkcija, ar ji yra, ar ne.

Kadangi nėramain()>funkcija Python, kai vertėjui suteikiama komanda paleisti Python programą, turi būti vykdomas 0 lygio įtraukos kodas. Tačiau prieš tai darydami jis apibrėžs keletą specialių kintamųjų.__name__>yra vienas iš tokių specialių kintamųjų. Jei šaltinio failas vykdomas kaip pagrindinė programa, vertėjas nustato__name__>kintamasis turi reikšmę__main__>. Jei šis failas importuojamas iš kito modulio,__name__>bus nustatytas pagal modulio pavadinimą.
__name__>yra integruotas kintamasis, kuris įvertina dabartinio modulio pavadinimą.



Pavyzdys:

java scan.nextstring








# 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()>

>

>

Išvestis:

 Hello hey there>

Kai vykdoma aukščiau nurodyta programa, interpretatorius deklaruoja pradinę vardo reikšmę kaip pagrindinę. Kai interpretatorius pasiekia if sakinį, jis patikrina, ar nėra pavadinimo reikšmės, o kai if reikšmė yra teisinga, jis vykdo pagrindinę funkciją, kitu atveju pagrindinė funkcija nevykdoma.

Pagrindinė modulio funkcija

Dabar, kai importuojame Python scenarijų kaip modulį__name__>kintamasis gauna tokią pačią reikšmę kaip ir importuoto python scenarijaus pavadinimas.

Pavyzdys: Tarkime, kad yra du failai (File1.py ir File2.py). Failas1 yra toks.




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

>

>

Išvestis:

 File1 __name__ = __main__ File1 is being run directly>

Dabar, kai failas1.py importuojamas į File2.py, __name__ reikšmė pasikeičia.




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

>

seleno pamoka
>

Išvestis:

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

Kaip matyti aukščiau, kai failas1.py paleidžiamas tiesiogiai, vertėjas nustato__name__>kintamasis kaip__main__>ir kai jis vykdomas per File2.py importuojant, kintamasis __name__ nustatomas kaip python scenarijaus pavadinimas, t. y. File1. Taigi galima sakyti, kad jei __name__ == __main__ yra programos dalis, kuri paleidžiama, kai scenarijus vykdomas iš komandinės eilutės naudojant tokią komandą kaip Python File1.py.