Mikä on Python-päätoiminto?
Python-päätoiminto on minkä tahansa ohjelman lähtökohta. Kun ohjelma on suoritettu, python-tulkki suorittaa koodin peräkkäin. Päätoiminto suoritetaan vain, kun se suoritetaan Python-ohjelmana. Se ei suorita päätoimintoa, jos se tuodaan moduulina.
Mikä on def main () -funktio Pythonissa? Tämän ymmärtämiseksi ota huomioon seuraava esimerkkikoodi
def main():print ("hello world!")print ("Guru99")
Täältä saimme kaksi painatusta - yksi on määritelty päätoiminnossa, joka on "Hello World", ja toinen on riippumaton, mikä on "Guru99". Kun suoritat funktion def main ():
- Vain "Guru99" tulostaa
- eikä koodi "Hei maailma".
Tämä johtuu siitä, että emme ilmoittaneet kutsufunktiota "if__name __ ==" __main__ ".
On tärkeää, että pääfunktion määrittelyn jälkeen soitat koodiin if__name __ == "__main__" ja suoritat sitten koodin, vasta sitten saat tuloksen "hei maailma!" ohjelmointikonsolissa. Harkitse seuraavaa koodia
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 on tässä tapauksessa painettu.
Tässä on selitys,
- Kun Python-tulkki lukee lähdetiedoston, se suorittaa kaiken siinä olevan koodin.
- Kun Python suorittaa "lähdetiedoston" pääohjelmana, se asettaa erikoismuuttujalle (__name__) arvon ("__main__").
- Kun suoritat pääfunktion pythonissa, se lukee "if" -lausekkeen ja tarkistaa, onko __name__ yhtä suuri kuin __main__.
- Pythonissa "if__name __ ==" __main__ " antaa sinun suorittaa Python-tiedostot joko uudelleenkäytettävinä moduuleina tai erillisinä ohjelmina.
Muuttuja __name__ ja Python-moduuli
Harkitse seuraavaa koodia ymmärtääksesi muuttujan __name__ merkityksen Pythonin pääfunktiomenetelmässä:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Harkitse nyt, koodi tuodaan moduulina
import MainFunctionprint("done")
Tässä on koodin selitys:
Kuten C, Python käyttää == vertailuun, kun = tehtävään. Python-tulkki käyttää päätoimintoa kahdella tavalla
suora juoksu:
- __nimi __ = __ pää__
- if lauseke == Tosi, ja komento _main_toteutetaan
tuo moduulina
- __nimi __ = moduulin tiedostonimi
- jos lauseke == false, ja komentoa __main__ ei suoriteta
Kun koodi suoritetaan, se tarkistaa moduulin nimen "if" -merkillä. Tämä mekanismi varmistaa, että päätoiminto suoritetaan vain suorana ajona, ei silloin, kun sitä tuodaan moduulina.
Edellä on esimerkkejä Python 3 -koodeista. Jos haluat käyttää Python 2: ta, harkitse seuraavaa koodia
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
Python 3: ssa sinun ei tarvitse käyttää if__name. Seuraava koodi toimii myös
def main():print("Hello World!")main()print("Guru99")
Huomaa: Varmista, että pääfunktion määrittelyn jälkeen jätät jonkin luetelmakohdan etkä ilmoita koodia suoraan def main (): function -funktion alapuolelle, muuten se antaa sisennysvirheen.