Python Hovedfunksjon og metode: Forstå def Main()
⚡ Smart oppsummering
Python main-funksjonen markerer startpunktet der tolken begynner å kjøre et program. Definert med def main() og parret med if __name__ == “__main__” guard, skiller den gjenbrukbar modulkode fra frittstående skriptkjøring.

Hva er Python Hovedfunksjon?
Ocuco Python hovedfunksjon er utgangspunktet for ethvert program. Når programmet kjøres, vil Python tolken kjører koden sekvensielt. Hovedfunksjonen utføres bare når den kjøres som en Python program. Den vil ikke kjøre hovedfunksjonen hvis den importeres som en modul.
Hva er def main()-funksjonen i PythonFor å forstå dette, vurder følgende eksempelkode, som er en del av kjernen Python programmering grunnleggende:
def main() Eksempel 1
def main():
print ("Hello World!")
print ("Guru99")
Her har vi to utskriftselementer – den ene er definert i hovedfunksjonen «Hello World!», og den andre er uavhengig, som er «Guru99”. Når du kjører funksjonen def main():
- Bare "Guru99” utskrifter
- og ikke koden "Hello World!"
Det er fordi vi ikke erklærte samtalen funksjonen "if__name__== "__main__".
Det er viktig at du etter å ha definert hovedfunksjonen kaller koden ved if__name__== "__main__" og deretter kjører koden, først da vil du få utgangen "hello world!" i programmeringskonsollen. Tenk på følgende kode
def main() Eksempel 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
Guru99 er trykt i dette tilfellet.
Her er forklaringen,
- Når Python tolk leser en kildefil, vil den kjøre all koden som finnes i den.
- Når Python kjører "kildefilen" som hovedprogram, setter den spesialvariabelen (__name__) til å ha en verdi ("__main__").
- Når du utfører hovedfunksjonen i python, vil den lese "if"-setningen og sjekke om __name__ er lik __main__.
- In Python “if__name__== “__main__” lar deg kjøre Python filer enten som gjenbrukbare moduler eller frittstående programmer.
Hvorfor bruke en main()-funksjon i Python?
Python tvinger deg ikke til å skrive en hovedfunksjon, men erfarne utviklere bruker en i nesten alle ikke-trivielle skript. def main()-mønsteret bringer orden til en fil og gjør koden trygg å gjenbruke. Her er hovedgrunnene til å bruke den:
- Klart inngangspunkt: En main()-funksjon forteller enhver leser nøyaktig hvor programmet starter, slik at logikken er enkel å følge.
- Gjenbrukbare moduler: Code beskyttet av if __name__ == “__main__” kjører bare ved direkte utførelse, slik at andre filer kan importere funksjonene dine uten bivirkninger.
- Lokalt omfang: Variabler som opprettes i main() forblir lokale, noe som unngår utilsiktede kollisjoner med globale navn andre steder i modulen.
- Enklere testing: Å isolere logikk i main() lar en testsuite kalle den direkte og sjekke resultatet.
- Delt konvensjon: En main()-funksjon er et allment anerkjent signal om programmets startpunkt, noe som forbedrer vedlikeholdbarheten på tvers av team.
Kort sagt, en main()-funksjon er valgfri i Python, men det holder større programmer lesbare, testbare og trygge å importere.
Variabelen __name__ og Python Moduler
For å forstå viktigheten av __name__ variabel i Python hovedfunksjonsmetode, vurder følgende kode:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Tenk nå på at koden importeres som en modul
import MainFunction
print("done")
Her er kodeforklaringen: Som C, Python bruker == for sammenligning mens = for 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
importere som en modul
- __name__= modulens filnavn
- if statement == false, og skriptet i __main__ vil ikke bli utført
Når koden er utført, vil den se etter modulnavnet med "hvis." Denne mekanismen sikrer at hovedfunksjonen kun utføres som direkte kjøring, ikke når den importeres som en modul.
Eksemplene ovenfor er Python 3 koder, hvis du vil bruke Python 2, bør du vurdere følgende kode
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, trenger du ikke bruke if__name. Følgende kode fungerer også
def main():
print("Hello World!")
main()
print("Guru99")
OBS: Forsikre deg om at etter å ha definert hovedfunksjonen, lar du noe innrykk og ikke deklarere koden rett under funksjonen def main(): ellers vil det gi innrykk feil.
Slik sender du kommandolinjeargumenter til Python main()-funksjon
En main()-funksjon er det naturlige stedet å håndtere input som en bruker sender på kommandolinjen. Python lagrer disse verdiene i sys.argv-listen, som standard sys-modulen tilbyr. Det første elementet, sys.argv[0], er skriptnavnet, og hver verdi etter det er et argument levert av brukeren.
Følgende eksempel leser og skriver ut kommandolinjeargumenter fra innsiden av en main()-funksjon:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Hvis du lagrer filen som script.py og kjører python script.py alfa beta, skriver programmet ut skriptnavnet og listen ['alpha', 'beta']. Fordi verdiene kommer inn i main(), forblir logikken organisert og enkel å teste.
Her er noen praktiske tips når du jobber med kommandolinjeinndata:
- Skjær av skriptnavnet: Bruk sys.argv[1:] for å bare lese argumentene brukeren skrev inn.
- Bruk argparse for ekte verktøy: Den innebygde argparse-modulen analyserer flagg, alternativer og hjelpetekst mye tryggere enn å lese sys.argv for hånd.
- Returner en utgangskode: Pakk inn kallet som sys.exit(main()) slik at returverdien til main() blir prosessens avslutningsstatus.
- Valider tidlig: Sjekk antall og type argumenter øverst i main() før du kjører resten av programmet.
Dette mønsteret gjør et enkelt skript om til et pålitelig kommandolinjeverktøy mens keeping hvert trinn i en enkelt, testbar main()-funksjon.
Python main()-funksjon vs. andre programmeringsspråk
Utviklere som kommer fra C, C++eller Java forventer ofte en obligatorisk main()-funksjon. Python fungerer annerledes fordi det er et tolket språk, så tolken kjører ganske enkelt en fil fra øverste linje til bunnen. main()-funksjonen i Python er derfor en konvensjon snarere enn en regel.
- C, C++, C# og Java: En main()-funksjon er et obligatorisk inngangspunkt. Kjøretiden kaller den automatisk, og det kan bare være én per program.
- Python: Ingen main()-funksjon er nødvendig. Utførelsen starter på den første linjen i filen, og def main() kjører bare hvis koden din kaller den.
- Vakten: Hvis __name__ == “__main__”-blokken gir Python et formål som ligner på en kompilert main() ved å markere kode som bare skal kjøres når filen er hovedprogrammet.
Så mens andre språk håndhever et main() inngangspunkt, Python overlater valget til deg, og tilbyr den samme klarheten gjennom konvensjon i stedet for en kompilatorregel.




