Hvad er Pythons hovedfunktion?
Pythons hovedfunktion er et udgangspunkt for ethvert program. Når programmet køres, kører pythontolken koden sekventielt. Hovedfunktionen udføres kun, når den køres som et Python-program. Den kører ikke hovedfunktionen, hvis den importeres som et modul.
Hvad er def main () -funktionen i Python? For at forstå dette skal du overveje følgende eksempelkode
def main():print ("hello world!")print ("Guru99")
Her fik vi to stykker tryk - den ene defineres inden for hovedfunktionen, der er "Hello World", og den anden er uafhængig, hvilket er "Guru99". Når du kører funktionen def main ():
- Kun "Guru99" udskrives
- og ikke koden "Hello World."
Det er fordi vi ikke erklærede opkaldsfunktionen "if__name __ ==" __main__ ".
Det er vigtigt, at efter at have defineret hovedfunktionen, kalder du koden ved if__name __ == "__main__" og derefter kører koden, kun så får du output "hej verden!" i programmeringskonsollen. Overvej følgende kode
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")
Guru99 er trykt i dette tilfælde.
Her er forklaringen,
- Når Python-tolk læser en kildefil, udfører den al den kode, der findes i den.
- Når Python kører "kildefilen" som hovedprogram, indstiller den den specielle variabel (__name__) til at have en værdi ("__main__").
- Når du udfører hovedfunktionen i python, læser den derefter "if" -erklæringen og kontrollerer, om __name__ svarer til __main__.
- I Python giver "if__name __ ==" __main__ "dig mulighed for at køre Python-filerne enten som genanvendelige moduler eller enkeltstående programmer.
Variablen __name__ og Python-modulet
For at forstå vigtigheden af __name__-variablen i Pythons hovedfunktionsmetode skal du overveje følgende kode:
def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")print("Value in built variable name is: ",__name__)
Overvej nu, kode importeres som et modul
import MainFunctionprint("done")
Her er kodeforklaringen:
Ligesom C bruger Python == til sammenligning, mens = til opgave. Python-tolk bruger hovedfunktionen på to måder
direkte løb:
- __navn __ = __ main__
- if statement == True, og scriptet i _main_ udføres
importer som et modul
- __name __ = modulets filnavn
- hvis udsagn == falsk, og scriptet i __main__ ikke udføres
Når koden udføres, vil den kontrollere modulnavnet med "hvis". Denne mekanisme sikrer, at hovedfunktionen kun udføres som direkte kørsel, ikke når den importeres som et modul.
Ovenstående eksempler er Python 3-koder. Hvis du vil bruge Python 2, skal du overveje at følge koden
def main():print "Hello World!"if __name__== "__main__":main()print "Guru99"
I Python 3 behøver du ikke bruge if__name. Følgende kode fungerer også
def main():print("Hello World!")main()print("Guru99")
Bemærk: Sørg for, at efter at have defineret hovedfunktionen, efterlader du noget indrykning og ikke erklærer koden lige under def main (): -funktionen ellers giver det indrykningsfejl.