Huvudfunktionen är som startpunkten för ett program. Python-tolken kör dock koden direkt från första raden. Exekveringen av koden börjar från startraden och går rad för rad. Det spelar ingen roll var huvudfunktionen finns eller den finns eller inte.
Eftersom det inte finns någonmain()>funktion i Python, när kommandot för att köra ett Python-program ges till tolken, ska koden som är på nivå 0 indrag exekveras. Men innan du gör det kommer den att definiera några speciella variabler.__name__>är en sådan speciell variabel. Om källfilen körs som huvudprogram, ställer tolken in__name__>variabel för att ha ett värde__main__>. Om den här filen importeras från en annan modul,__name__>kommer att ställas in på modulens namn.
__name__>är en inbyggd variabel som utvärderas till namnet på den aktuella modulen.
Exempel:
# Python program to demonstrate> # main() function> > > print>(>'Hello'>)> > # Defining main function> def> main():> >print>(>'hey there'>)> > > # Using the special variable> # __name__> if> __name__>=>=>'__main__'>:> >main()> |
>
>
ersätt från sträng i java
Produktion:
Hello hey there>
När ovanstående program körs, deklarerar tolken det initiala värdet för namnet som huvud. När tolken når if-satsen letar den efter namnets värde och när värdet på if är sant kör den huvudfunktionen annars körs inte huvudfunktionen.
Huvudfunktion som modul
Nu när vi importerar ett Python-skript som modul__name__>variabeln får samma värde som namnet på det importerade pythonskriptet.
Exempel: Låt oss överväga att det finns två filer (File1.py och File2.py). Fil1 är som följer.
# File1.py> > print>(>'File1 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File1 is being run directly'>)> else>:> >print>(>'File1 is being imported'>)> |
>
>
Produktion:
File1 __name__ = __main__ File1 is being run directly>
Nu, när File1.py importeras till File2.py, ändras värdet på __name__.
# File2.py> > import> File1> > print>(>'File2 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File2 is being run directly'>)> else>:> >print>(>'File2 is being imported'>)> |
>
sortera en arraylist java
>
Produktion:
File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly>
Som framgår ovan, när File1.py körs direkt, ställer tolken in__name__>variabel som__main__>och när den körs genom File2.py genom import, ställs variabeln __name__ in som namnet på python-skriptet, d.v.s. File1. Således kan man säga att om __name__ == __main__ är den del av programmet som körs när skriptet körs från kommandoraden med ett kommando som Python File1.py.