Python Hovedfunktion og metode: Forstå def Main()
⚡ Smart opsummering
Python Funktionen main markerer startpunktet, hvor fortolkeren begynder at køre et program. Defineret med def main() og parret med if __name__ == “__main__” guarden, adskiller den genanvendelig modulkode fra separat scriptudførelse.
Hvad er Python Hovedfunktion?
Python hovedfunktion er udgangspunktet for ethvert program. Når programmet køres, vil Python Fortolkeren kører koden sekventielt. Hovedfunktionen udføres kun, når den køres som en Python program. Den vil ikke køre hovedfunktionen, hvis den importeres som et modul.
Hvad er def main()-funktionen i PythonFor at forstå dette, overvej følgende eksempelkode, som er en del af kernen Python programmering det grundlæggende:
def main() Eksempel 1
def main():
print ("Hello World!")
print ("Guru99")
Her har vi to udskriftsstykker - den ene er defineret i hovedfunktionen "Hello World!", og den anden er uafhængig, som er "Guru99". Når du kører funktionen def main():
- Kun "Guru99" udskrifter
- og ikke koden "Hello World!"
Det er, fordi vi ikke erklærede opkaldet funktion "if__name__== "__main__".
Det er vigtigt, at du efter at have defineret hovedfunktionen kalder koden ved if__name__== "__main__" og derefter kører koden, først da får du outputtet "hello world!" i programmeringskonsollen. Overvej følgende kode
def main() Eksempel 2
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, vil den udføre al den kode, der findes i den.
- Når Python kører "kildefilen" som hovedprogram, den sætter den specielle variabel (__name__) til at have en værdi ("__main__").
- Når du udfører hovedfunktionen i python, vil den læse "if"-sætningen og kontrollere, om __name__ er lig med __main__.
- In Python "if__name__== "__main__" giver dig mulighed for at køre Python filer enten som genanvendelige moduler eller selvstændige programmer.
Hvorfor bruge en main()-funktion i Python?
Python tvinger dig ikke til at skrive en main-funktion, men erfarne udviklere bruger en i næsten alle ikke-trivielle scripts. def main()-mønsteret bringer orden i en fil og gør koden sikker at genbruge. Her er de vigtigste grunde til at bruge det:
- Klart indgangspunkt: En main()-funktion fortæller enhver læser præcis, hvor programmet starter, så logikken er let at følge.
- Genanvendelige moduler: Code beskyttet af if __name__ == “__main__” kører kun ved direkte udførelse, så andre filer kan importere dine funktioner uden bivirkninger.
- Lokalt omfang: Variabler oprettet i main() forbliver lokale, hvilket undgår utilsigtede sammenstød med globale navne andre steder i modulet.
- Nemmere testning: Isolering af logik i main() lader en testsuite kalde den direkte og kontrollere resultatet.
- Delt konvention: En main()-funktion er et bredt anerkendt signal for programmets startpunkt, hvilket forbedrer vedligeholdelsen på tværs af teams.
Kort sagt er en main()-funktion valgfri i Python, men det holder større programmer læsbare, testbare og sikre at importere.
Variablen __name__ og Python Moduler
For at forstå vigtigheden af __name__ variabel i Python hovedfunktionsmetode, overvej 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 MainFunction
print("done")
Her er kodeforklaringen: Ligesom C, Python bruger == til sammenligning, mens = til opgave. Python tolk bruger hovedfunktionen på to måder
direkte løb:
- __navn__=__hoved__
- if statement == True, og scriptet i _main_vil blive udført
importere som et modul
- __name__= modulets filnavn
- if statement == false, og scriptet i __main__ vil ikke blive udført
Når koden udføres, vil den søge efter 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, overvej venligst følgende kode
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, behøver du ikke bruge if__name. Følgende kode virker også
def main():
print("Hello World!")
main()
print("Guru99")
Bemærk: Sørg for, at du efter at have defineret hovedfunktionen efterlader noget indrykning og ikke erklærer koden lige under def main():-funktionen, ellers vil det give indrykningsfejl.
Sådan sender du kommandolinjeargumenter til Python main() Funktion
En main()-funktion er det naturlige sted at håndtere input, som en bruger sender på kommandolinjen. Python gemmer disse værdier i sys.argv-listen, som standard sys-modulet leverer. Det første element, sys.argv[0], er scriptnavnet, og hver værdi efter det er et argument angivet af brugeren.
Følgende eksempel læser og udskriver kommandolinjeargumenter indefra en main()-funktion:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Hvis du gemmer filen som script.py og kører python script.py alfa beta, udskriver programmet scriptnavnet og listen ['alpha', 'beta']. Fordi værdierne kommer inde i main(), forbliver logikken organiseret og nem at teste.
Her er et par praktiske tips til, når du arbejder med kommandolinjeinput:
- Fjern scriptnavnet: Brug sys.argv[1:] til kun at læse de argumenter, som brugeren har indtastet.
- Brug argparse til rigtige værktøjer: Det indbyggede argparse-modul analyserer flag, indstillinger og hjælpetekst langt mere sikkert end at læse sys.argv i hånden.
- Returner en exit-kode: Omslut kaldet som sys.exit(main()), så returværdien af main() bliver processens exit-status.
- Valider tidligt: Kontrollér antallet og typen af argumenter øverst i main(), før du kører resten af programmet.
Dette mønster forvandler et simpelt script til et pålideligt kommandolinjeværktøj, mens keeping hvert trin i en enkelt, testbar main()-funktion.
Python main()-funktionen vs. andre programmeringssprog
Udviklere fra C, C++ eller Java forventer ofte en obligatorisk main()-funktion. Python fungerer anderledes, fordi det er et fortolket sprog, så fortolkeren kører blot en fil fra den øverste linje til den nederste. Funktionen main() i Python er derfor en konvention snarere end en regel.
- C, C++, C# og Java: En main()-funktion er et obligatorisk indgangspunkt. Runtime-funktionen kalder den automatisk, og der kan kun være én pr. program.
- Python: Ingen main()-funktion er påkrævet. Udførelsen starter på den første linje i filen, og def main() kører kun, hvis din kode kalder den.
- Vagten: Hvis __name__ == “__main__”-blokken giver Python et formål svarende til en kompileret main() ved at markere kode, der kun skal køre, når filen er hovedprogrammet.
Så mens andre sprog håndhæver et main() indgangspunkt, Python overlader valget til dig og tilbyder den samme klarhed gennem konvention i stedet for en compilerregel.





