Python fő funkciója & Módszer példa: A __main__ megértése

Tartalomjegyzék:

Anonim

Mi a Python fő funkciója?

A Python fő funkciója bármely program kiindulópontja. A program futtatásakor a python tolmács egymás után futtatja a kódot. A fő funkciót csak akkor hajtják végre, ha Python programként futtatják. Nem futtatja a fő funkciót, ha modulként importál.

Mi a def main () függvény a Pythonban? Ennek megértéséhez vegye figyelembe a következő példakódot

def main():print ("hello world!")print ("Guru99")

Itt két darab nyomtatott anyagot kaptunk - az egyik meghatározása a "Hello World" fő funkción belül történik, a másik pedig független, ami a "Guru99". A def main () függvény futtatásakor:

  • Csak a "Guru99" nyomtat
  • és nem a "Hello World" kódot.

Ennek oka, hogy nem deklaráltuk az "if__name __ ==" __main__ "hívásfüggvényt.

Fontos, hogy a fő funkció meghatározása után hívja meg a kódot az if__name __ == "__main__" mezővel, majd futtassa a kódot, csak akkor kapja meg a "hello world!" Kimenetet. a programozó konzolon. Vegye figyelembe a következő kódot

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")

Ebben az esetben a Guru99 van nyomtatva.

Itt van a magyarázat,

  • Amikor a Python tolmács elolvas egy forrásfájlt, végrehajtja az abban található összes kódot.
  • Amikor a Python futtatja a "forrásfájlt" fő programként, akkor a speciális (__név__) változó értékét állítja be ("__main__").
  • Amikor végrehajtja a fő függvényt a pythonban, akkor beolvassa az "if" utasítást, és ellenőrzi, hogy a __name__ egyenlő-e a __main__ -val.
  • A Pythonban az "if__name __ ==" __main__ " lehetővé teszi a Python fájlok futtatását újrafelhasználható modulokként vagy önálló programként.

A __name__ változó és a Python modul

A __name__ változó fontosságának megértéséhez a Python fő funkció metódusában vegye figyelembe a következő kódot:

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)

Most vegyük figyelembe, hogy a kódot modulként importálják

import MainFunctionprint("done")

Itt van a kód magyarázata:

A C-hez hasonlóan a Python az == értéket használja az összehasonlításhoz, míg a = a hozzárendeléshez. A Python tolmács kétféle módon használja a fő funkciót

közvetlen futás:

  • __név __ = __ fő__
  • if utasítás == Igaz, és a _main_ parancsfájl végrehajtásra kerül

importálás modulként

  • __név __ = modul fájlneve
  • if utasítás == hamis, és a __main__ szkript nem lesz végrehajtva

A kód végrehajtásakor az "if" -nel ellenőrzi a modul nevét. Ez a mechanizmus biztosítja, hogy a fő funkció csak közvetlen futtatásként kerül végrehajtásra, nem pedig modulként importálva.

A fenti példák a Python 3 kódokat tartalmazzák. Ha Python 2-t szeretne használni, vegye figyelembe a következő kódot

def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"

A Python 3-ban nem kell használnia az if__name szót. A következő kód is működik

def main():print("Hello World!")main()print("Guru99")

Megjegyzés: Győződjön meg róla, hogy a fő függvény meghatározása után hagyjon néhány behúzást, és ne deklarálja a kódot közvetlenül a def main (): function alatt, különben behúzási hibát ad.