Python hovedfunksjon & Metodeeksempel: Forstå __main

Innholdsfortegnelse:

Anonim

Hva er Pythons hovedfunksjon?

Pythons hovedfunksjon er et utgangspunkt for ethvert program. Når programmet kjøres, kjører pythontolken koden sekvensielt. Hovedfunksjonen utføres bare når den kjøres som et Python-program. Den kjører ikke hovedfunksjonen hvis den importeres som en modul.

Hva er def main () -funksjonen i Python? For å forstå dette, bør du vurdere følgende eksempelkode

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

Her fikk vi to utskrifter - den ene er definert i hovedfunksjonen som er "Hello World" og den andre er uavhengig, som er "Guru99". Når du kjører funksjonen def main ():

  • Bare "Guru99" skrives ut
  • og ikke koden "Hello World."

Det er fordi vi ikke erklærte anropsfunksjonen "if__name __ ==" __main__ ".

Det er viktig at du etter å ha definert hovedfunksjonen, kaller koden ved if__name __ == "__main__" og deretter kjører koden, bare da får du utdata "hallo verden!" i programmeringskonsollen. Vurder følgende kode

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

Guru99 er skrevet ut i dette tilfellet.

Her er forklaringen,

  • Når Python-tolk leser en kildefil, vil den utføre all koden som finnes i den.
  • Når Python kjører "kildefilen" som hovedprogram, setter den den spesielle variabelen (__name__) til å ha en verdi ("__main__").
  • Når du utfører hovedfunksjonen i python, vil den lese "if" -uttalelsen og sjekke om __name__ tilsvarer __main__.
  • I Python lar "if__name __ ==" __main__ " deg kjøre Python-filene enten som gjenbrukbare moduler eller frittstående programmer.

__Name__-variabelen og Python-modulen

For å forstå viktigheten av __name__-variabelen i Python-hovedfunksjonsmetoden, bør du vurdere følgende kode:

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

Tenk nå at kode importeres som en modul

import MainFunctionprint("done")

Her er kodeforklaringen:

Som C bruker Python == til sammenligning mens = til oppgave. Python-tolk bruker hovedfunksjonen på to måter

direkte løp:

  • __navn __ = __ main__
  • if statement == True, og skriptet i _main_ vil bli utført

importer som modul

  • __name __ = modulens filnavn
  • hvis uttalelse == usant, og skriptet i __main__ ikke vil bli utført

Når koden kjøres, vil den se etter modulnavnet med "if". Denne mekanismen sørger for at hovedfunksjonen bare utføres som direkte kjøring, ikke når den importeres som en modul.

Ovenstående eksempler er Python 3-koder. Hvis du vil bruke Python 2, kan du vurdere å følge koden

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

I Python 3 trenger du ikke bruke if__name. Følgende kode fungerer også

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

Merk: Forsikre deg om at etter at du har definert hovedfunksjonen, legger du igjen noe innrykk og ikke erklærer koden rett under def main (): funksjon ellers vil det gi innrykkfeil.