Glavna funkcija Pythona & Primer metode: Razumevanje __main

Kazalo:

Anonim

Kaj je glavna funkcija Pythona?

Glavna funkcija Pythona je izhodišče katerega koli programa. Ko se program zažene, tolmač python zažene kodo zaporedno. Glavna funkcija se izvaja le, če se izvaja kot program Python. Ne bo zagnala glavne funkcije, če je bila uvožena kot modul.

Kaj je funkcija def main () v Pythonu? Da bi to razumeli, upoštevajte naslednjo kodo primera

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

Tu imamo dva kosa - eden je definiran v glavni funkciji, ki je "Hello World", drugi pa je neodvisen, to je "Guru99". Ko zaženete funkcijo def main ():

  • Natisne se samo "Guru99"
  • in ne koda "Hello World."

Ker klicne funkcije nismo razglasili "if__name __ ==" __main__ ".

Pomembno je, da po definiciji glavne funkcije kodo pokličete z if__name __ == "__main__" in nato zaženete kodo, šele nato boste dobili izhod "hello world!" v programski konzoli. Upoštevajte naslednjo kodo

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

V tem primeru je natisnjen Guru99.

Tu je razlaga,

  • Ko tolmač Python prebere izvorno datoteko, bo izvedel vso kodo, ki jo najdete.
  • Ko Python zažene "izvorno datoteko" kot glavni program, nastavi posebno spremenljivko (__name__) na vrednost ("__main__").
  • Ko zaženete glavno funkcijo v pythonu, bo nato prebrala stavek "if" in preverila, ali je __name__ enako __main__.
  • V Pythonu "if__name __ ==" __main__ " omogoča zagon datotek Python kot modulov za večkratno uporabo ali samostojnih programov.

Spremenljivka __name__ in modul Python

Če želite razumeti pomen spremenljivke __name__ v glavni funkcijski metodi Pythona, upoštevajte naslednjo kodo:

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

Zdaj razmislite, koda je uvožena kot modul

import MainFunctionprint("done")

Tu je razlaga kode:

Tako kot C tudi Python za primerjavo uporablja ==, medtem ko = za dodelitev. Tolmač Python uporablja glavno funkcijo na dva načina

neposreden tek:

  • __ime __ = __ glavno__
  • if stavek == True, in skript v _main_will bo izveden

uvoz kot modul

  • __name __ = ime datoteke modula
  • if statement == false, in skript v __main__ ne bo izveden

Ko se koda izvede, bo ime modula preverila z "če". Ta mehanizem zagotavlja, da se glavna funkcija izvaja samo kot neposredni zagon, ne pa tudi, če je uvožena kot modul.

Zgornji primeri so kode Python 3, če želite uporabljati Python 2, upoštevajte naslednjo kodo

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

V Pythonu 3 vam ni treba uporabljati if__name. Tudi naslednja koda deluje

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

Opomba: Prepričajte se, da po določitvi glavne funkcije pustite nekaj zamika in ne deklarirate kode tik pod funkcijo def main (): v nasprotnem primeru bo prišlo do napake zamika.