Hlavná funkcia Pythonu & Príklad metódy: Pochopte __main

Obsah:

Anonim

Čo je hlavná funkcia Pythonu?

Hlavná funkcia Pythonu je východiskovým bodom každého programu. Keď je program spustený, tlmočník pythonu spustí kód postupne. Hlavná funkcia sa vykoná, iba ak je spustená ako program v jazyku Python. Ak sa importuje ako modul, nespustí hlavnú funkciu.

Aká je funkcia def main () v Pythone? Aby ste tomu porozumeli, zvážte nasledujúci ukážkový kód

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

Tu sme dostali dva kusy tlače - jeden je definovaný v rámci hlavnej funkcie, ktorá je „Hello World“, a druhý je nezávislý, čo je „Guru99“. Keď spustíte funkciu def main ():

  • Vytlačí sa iba text „Guru99“
  • a nie kód „Hello World“.

Je to preto, že sme nedeklarovali funkciu volania „if__name __ ==„ __main__ “.

Je dôležité, aby ste po definovaní hlavnej funkcie zavolali kód if__name __ == "__main__" a potom spustili kód, až potom dostanete výstup "ahoj svet!" v programovacej konzole. Zvážte nasledujúci kód

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

Guru99 je v tomto prípade vytlačený.

Tu je vysvetlenie,

  • Keď tlmočník Pythonu prečíta zdrojový súbor, vykoná všetok kód, ktorý sa v ňom nachádza.
  • Keď Python spustí ako hlavný program „zdrojový súbor“, nastaví špeciálnu premennú (__name__) na hodnotu („__main__“).
  • Keď spustíte hlavnú funkciu v pythone, prečíta príkaz „if“ a skontroluje, či sa __name__ rovná __main__.
  • V jazyku Python „if__name __ ==„ __main__ “ umožňuje spúšťať súbory Pythonu buď ako opakovane použiteľné moduly, alebo ako samostatné programy.

Premenná __name__ a modul Python

Aby ste pochopili dôležitosť premennej __name__ v metóde hlavnej funkcie Pythonu, zvážte nasledujúci kód:

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

Teraz zvážte, kód sa importuje ako modul

import MainFunctionprint("done")

Tu je vysvetlenie kódu:

Rovnako ako C, Python používa == na porovnanie, zatiaľ čo = na priradenie. Tlmočník jazyka Python používa hlavnú funkciu dvoma spôsobmi

priamy beh:

  • __name __ = __ main__
  • if statement == True, a bude vykonaný skript v _main_

import ako modul

  • __name __ = názov súboru modulu
  • if statement == false, a skript v __main__ sa nespustí

Po vykonaní kódu skontroluje názov modulu pomocou „ak“. Tento mechanizmus zaisťuje, že hlavná funkcia sa vykoná iba ako priamy beh, nie keď sa importuje ako modul.

Vyššie uvedené príklady sú kódy Pythonu 3. Ak chcete používať Python 2, zvážte nasledujúci kód

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

V Pythone 3 nemusíte používať if__name. Nasledujúci kód tiež funguje

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

Poznámka: Uistite sa, že po definovaní hlavnej funkcie necháte nejaké odsadenie a nedeklarujete kód priamo pod def main (): function, inak spôsobí chybu odsadenia.