Hovedfunktionen er som indgangspunktet for et program. Python-fortolkeren kører dog koden lige fra første linje. Udførelsen af koden starter fra startlinjen og går linje for linje. Det er lige meget, hvor hovedfunktionen er til stede, eller den er til stede eller ej.
Da der ikke er nogenmain()>funktion i Python, når kommandoen til at køre et Python-program gives til fortolkeren, skal koden, der er på niveau 0 indrykning, udføres. Men før du gør det, vil den definere nogle få specielle variabler.__name__>er en sådan speciel variabel. Hvis kildefilen udføres som hovedprogram, indstiller tolken__name__>variabel for at have en værdi__main__>. Hvis denne fil importeres fra et andet modul,__name__>indstilles til modulets navn.
__name__>er en indbygget variabel, som evaluerer til navnet på det aktuelle modul.
Eksempel:
sove i javascript
# 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()> |
>
>
Produktion:
Hello hey there>
Når ovenstående program udføres, erklærer fortolkeren startværdien af navnet som hoved. Når fortolkeren når if-sætningen, tjekker den for værdien af navnet, og når værdien af if er sand, kører den hovedfunktionen, ellers udføres hovedfunktionen ikke.
Hovedfunktion som modul
Når vi nu importerer et Python-script som modul__name__>variabel får værdien samme som navnet på det importerede python-script.
Eksempel: Lad os overveje, at der er to filer (File1.py og File2.py). Fil1 er som følger.
# File1.py> > print>(>'File1 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File1 is being run directly'>)> else>:> >print>(>'File1 is being imported'>)> |
datastrukturer i java
>
>
Produktion:
File1 __name__ = __main__ File1 is being run directly>
Nu, når File1.py importeres til File2.py, ændres værdien af __name__.
sne vs is
# File2.py> > import> File1> > print>(>'File2 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File2 is being run directly'>)> else>:> >print>(>'File2 is being imported'>)> |
>
>
Produktion:
File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly>
Som det ses ovenfor, når File1.py køres direkte, indstiller tolken__name__>variabel som__main__>og når den køres gennem File2.py ved at importere, sættes variablen __name__ som navnet på python-scriptet, dvs. File1. Det kan således siges, at hvis __name__ == __main__ er den del af programmet, der kører, når scriptet køres fra kommandolinjen ved hjælp af en kommando som Python File1.py.