Python Põhifunktsiooni ja meetodi näide: def Main() mõistmine

Mis on Python Peamine funktsioon?

Python põhifunktsioon on mis tahes programmi alguspunkt. Kui programm on käivitatud, käivitab pythoni tõlk koodi järjestikku. Põhifunktsiooni käivitatakse ainult siis, kui seda käivitatakse kui a Python programm. See ei käivita põhifunktsiooni, kui see imporditakse moodulina.

Mis on def main() funktsioon Python? Selle mõistmiseks kaaluge järgmist näidiskoodi

def main() Näide 1

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

Python Peamine funktsioon

Siin on meil kaks trükist - üks on määratletud põhifunktsiooni "Tere maailm!" ja teine ​​on iseseisev, milleks on “Guru99”. Kui käivitate funktsiooni def main ():

  • Välja trükitakse ainult “Guru99”.
  • ja mitte kood "Tere maailm!"

Põhjus on selles, et me ei kuulutanud üleskutset funktsioon "if__name__== "__main__".

On oluline, et pärast põhifunktsiooni määratlemist kutsuksite koodi välja if__name__== "__main__" ja seejärel käivitaksite koodi, alles siis saate väljundi "tere maailm!" programmeerimiskonsoolis. Mõelge järgmisele koodile

def main() Näide 2

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

if __name__ == "__main__":
    main()

print("Guru99")


Guru99 on sel juhul trükitud.

Python Peamine funktsioon

Siin on selgitus,

  • Kui Python tõlk loeb lähtefaili, käivitab see kogu selles leiduva koodi.
  • Kui Python käivitab põhiprogrammina lähtefaili, määrab see erimuutujale (__name__) väärtuse (“__main__”).
  • Kui käivitate pythonis põhifunktsiooni, loeb see lause "if" ja kontrollib, kas __nimi__ võrdub __main__-ga.
  • In Python "if__name__== "__main__" võimaldab teil käivitada Python failid kas kui korduvkasutatavad moodulid või eraldiseisvad programmid.

Muutuja __name__ ja Python moodulid

Et mõista muutuja __name__ tähtsust Python põhifunktsiooni meetodit, kaaluge järgmist koodi:

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

if __name__ == "__main__":
    main()

print("Guru99")

print("Value in built variable name is:  ",__name__)

Muutuja __name__ ja Python moodulid

Mõelge nüüd, kood imporditakse moodulina

import MainFunction

print("done")

Muutuja __name__ ja Python moodulid

Siin on koodi selgitus:


Nagu C, Python kasutab == võrdlemiseks, samas kui = määramiseks. Python tõlk kasutab põhifunktsiooni kahel viisil

otsejooks:

  • __nimi__=__main__
  • if lause == Tõene ja skriptis _main_käivitatakse

importida moodulina

  • __name__= mooduli failinimi
  • if lause == false ja __main__ skripti ei käivitata

Kui kood on käivitatud, kontrollib see mooduli nime "if". See mehhanism tagab, et põhifunktsiooni täidetakse ainult otsekäivitatuna, mitte moodulina impordituna.

Ülaltoodud näited on Python 3 koodi, kui soovite kasutada Python 2, palun kaaluge järgmist koodi

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

print "Guru99"

In Python 3, ei pea te kasutama if__name. Toimib ka järgmine kood

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

Märge: Veenduge, et pärast põhifunktsiooni määratlemist jätaksite mõne taane ja ei deklareeri koodi otse funktsiooni def main(): alla, vastasel juhul annab see taande vea.