Python Huvudfunktion och metod: Förstå def Main()
⚡ Smart sammanfattning
Python Funktionen main markerar startpunkten där tolken börjar köra ett program. Definierad med def main() och parad med if __name__ == “__main__” guard, separerar den återanvändbar modulkod från fristående skriptkörning.

Vad är Python Huvudfunktion?
Ocuco-landskapet Python huvudfunktion är startpunkten för alla program. När programmet körs, Python tolken kör koden sekventiellt. Huvudfunktionen körs endast när den körs som en Python program. Den kommer inte att köra huvudfunktionen om den importeras som en modul.
Vad är def main()-funktionen i PythonFör att förstå detta, betrakta följande exempelkod, som är en del av kärnan Python programmering grunderna:
def main() Exempel 1
def main():
print ("Hello World!")
print ("Guru99")
Här har vi två utskrifter – en definieras inom huvudfunktionen "Hello World!" och den andra är oberoende, vilket är "Guru99”. När du kör funktionen def main():
- Endast "Guru99” utskrifter
- och inte koden "Hello World!"
Det beror på att vi inte deklarerade samtalet funktionen "if__name__== "__main__".
Det är viktigt att du efter att ha definierat huvudfunktionen anropar koden med if__name__== "__main__" och sedan kör koden, först då får du utgången "hej världen!" i programmeringskonsolen. Tänk på följande kod
def main() Exempel 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
Guru99 är tryckt i detta fall.
Här är förklaringen,
- När Python tolken läser en källfil, kommer den att köra all kod som finns i den.
- När Python kör "källfilen" som huvudprogram, den ställer in specialvariabeln (__name__) att ha ett värde ("__main__").
- När du kör huvudfunktionen i python kommer den att läsa "if"-satsen och kontrollera om __name__ är lika med __main__.
- In Python "if__name__== "__main__" låter dig köra Python filer antingen som återanvändbara moduler eller fristående program.
Varför använda en main()-funktion i Python?
Python tvingar dig inte att skriva en main-funktion, men erfarna utvecklare använder en i nästan alla icke-triviala skript. Mönstret def main() skapar ordning i en fil och gör koden säker att återanvända. Här är de främsta anledningarna att använda det:
- Tydlig ingångspunkt: En main()-funktion berättar för läsaren exakt var programmet startar, så logiken är lätt att följa.
- Återanvändbara moduler: Code skyddas av if __name__ == “__main__” körs bara vid direkt exekvering, så att andra filer kan importera dina funktioner utan biverkningar.
- Lokalt omfång: Variabler som skapas inuti main() förblir lokala, vilket undviker oavsiktliga kollisioner med globala namn på andra ställen i modulen.
- Enklare testning: Att isolera logik i main() låter en testsvit anropa den direkt och kontrollera resultatet.
- Delad konvention: En main()-funktion är en allmänt erkänd signal för programmets startpunkt, vilket förbättrar underhållbarheten mellan team.
Kort sagt, en main()-funktion är valfri i Python, men det håller större program läsbara, testbara och säkra att importera.
Variabeln __name__ och Python Modulerna
För att förstå vikten av variabeln __name__ i Python huvudfunktionsmetod, överväg följande kod:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Tänk nu på att kod importeras som en modul
import MainFunction
print("done")
Här är kodförklaringen: Som C, Python använder == för jämförelse medan = för tilldelning. Python tolk använder huvudfunktionen på två sätt
direktkörning:
- __namn__=__huvud__
- if-satsen == True, och skriptet i _main_ kommer att köras
importera som en modul
- __name__= modulens filnamn
- if statement == false, och skriptet i __main__ kommer inte att köras
När koden exekveras kommer den att söka efter modulnamnet med "if." Denna mekanism säkerställer att huvudfunktionen endast körs som direktkörning, inte när den importeras som en modul.
Ovanstående exempel är Python 3 koder, om du vill använda Python 2, överväg följande kod
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, du behöver inte använda if__name. Följande kod fungerar också
def main():
print("Hello World!")
main()
print("Guru99")
Obs: Se till att efter att ha definierat huvudfunktionen lämnar du ett indrag och inte deklarerar koden precis under funktionen def main(): annars kommer det att ge indragsfel.
Hur man skickar kommandoradsargument till Python main() Funktion
En main()-funktion är den naturliga platsen att hantera inmatning som en användare skickar på kommandoraden. Python lagrar dessa värden i sys.argv-listan, som standardmodulen sys tillhandahåller. Det första alternativet, sys.argv[0], är skriptnamnet, och varje värde efter det är ett argument som tillhandahålls av användaren.
Följande exempel läser och skriver ut kommandoradsargument inifrån en main()-funktion:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Om du sparar filen som script.py och kör python script.py alfa beta, programmet skriver ut skriptnamnet och listan ['alpha', 'beta']. Eftersom värdena kommer inuti main() förblir logiken organiserad och lätt att testa.
Här är några praktiska tips när du arbetar med kommandoradsinmatning:
- Skär bort skriptnamnet: Använd sys.argv[1:] för att bara läsa de argument som användaren skrev.
- Använd argparse för riktiga verktyg: Den inbyggda argparse-modulen tolkar flaggor, alternativ och hjälptext mycket säkrare än att läsa sys.argv för hand.
- Returnera en avslutningskod: Slå in anropet som sys.exit(main()) så att returvärdet för main() blir processens avslutningsstatus.
- Validera tidigt: Kontrollera antalet och typen av argument högst upp i main() innan du kör resten av programmet.
Det här mönstret förvandlar ett enkelt skript till ett pålitligt kommandoradsverktyg medan keeping varje steg i en enda, testbar main()-funktion.
Python main()-funktionen jämfört med andra programmeringsspråk
Utvecklare som kommer från C, C++, eller Java förväntar sig ofta en obligatorisk main()-funktion. Python fungerar annorlunda eftersom det är ett tolkat språk, så tolken kör helt enkelt en fil från den översta raden till den nedre. Funktionen main() i Python är därför en konvention snarare än en regel.
- C, C++, C# och Java: En main()-funktion är en obligatorisk startpunkt. Körningsmiljön anropar den automatiskt, och det kan bara finnas en per program.
- Python: Ingen main()-funktion krävs. Exekveringen börjar på filens första rad, och def main() körs bara om din kod anropar den.
- Vakten: Blocket om __name__ == “__main__” ger Python ett syfte som liknar en kompilerad main() genom att markera kod som bara ska köras när filen är huvudprogrammet.
Så medan andra språk tillämpar en main() startpunkt, Python lämnar valet åt dig och erbjuder samma tydlighet genom konvention istället för en kompilatorregel.




