Päätoiminto on kuin ohjelman aloituspiste. Python-tulkki ajaa kuitenkin koodin heti ensimmäiseltä riviltä. Koodin suoritus alkaa aloitusriviltä ja etenee rivi riviltä. Sillä ei ole väliä, missä päätoiminto on läsnä tai se on olemassa vai ei.
Koska ei olemain()>Pythonissa, kun tulkille annetaan komento Python-ohjelman suorittamiseksi, suoritetaan koodi, joka on tason 0 sisennyksellä. Ennen kuin teet sen, se kuitenkin määrittää muutamia erikoismuuttujia.__name__>on yksi tällainen erikoismuuttuja. Jos lähdetiedosto suoritetaan pääohjelmana, tulkki asettaa__name__>muuttujalla on arvo__main__>. Jos tätä tiedostoa tuodaan toisesta moduulista,__name__>asetetaan moduulin nimeen.
__name__>on sisäänrakennettu muuttuja, joka laskee nykyisen moduulin nimen.
Esimerkki:
# 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()> |
liitokset ja liitostyypit
>
mitä google tarkoittaa
>
Lähtö:
Hello hey there>
Kun yllä oleva ohjelma suoritetaan, tulkki ilmoittaa nimen alkuarvon mainoksi. Kun tulkki saavuttaa if-lauseen, se tarkistaa nimen arvon ja kun if:n arvo on tosi, se suorittaa pääfunktion, muuten päätoimintoa ei suoriteta.
Päätoiminto moduulina
Nyt kun tuomme Python-skriptin moduulina__name__>muuttuja saa saman arvon kuin tuodun python-skriptin nimi.
Esimerkki: Oletetaan, että tiedostoa on kaksi (File1.py ja File2.py). Tiedosto1 on seuraava.
viittauksen osoitin
# File1.py> > print>(>'File1 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File1 is being run directly'>)> else>:> >print>(>'File1 is being imported'>)> |
>
>
Lähtö:
File1 __name__ = __main__ File1 is being run directly>
Nyt, kun File1.py tuodaan File2.py:hen, __name__:n arvo muuttuu.
# File2.py> > import> File1> > print>(>'File2 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File2 is being run directly'>)> else>:> >print>(>'File2 is being imported'>)> |
lue excel-tiedosto javassa
>
>
Lähtö:
File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly>
Kuten yllä näkyy, kun File1.py ajetaan suoraan, tulkki asettaa__name__>muuttuja kuten__main__>ja kun se ajetaan File2.py:n kautta tuomalla, muuttuja __name__ asetetaan python-skriptin nimeksi, eli File1. Voidaan siis sanoa, että jos __name__ == __main__ on se ohjelman osa, joka suoritetaan, kun komentosarja ajetaan komentoriviltä komennolla, kuten Python File1.py.