Python-päätoiminto & Menetelmäesimerkki: Ymmärrä __main

Sisällysluettelo:

Anonim

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.