Python belangrijkste functie

In deze tutorial zullen we leren hoe we het __name__-attribuut van een Python-programma kunnen gebruiken om het dynamisch in verschillende contexten uit te voeren.

Wat is de functie main () in Python?

Sommige programmeertalen hebben een speciale functie main()die het uitvoeringspunt is voor een programmabestand. Python-interpreter voert echter elke regel serieel uit vanaf de bovenkant van het bestand en heeft geen expliciete main()functie.

Python biedt andere conventies om het uitvoeringspunt te definiëren. Een daarvan is het gebruik van de main()functie en de __name__-eigenschap van een python-bestand.

Wat is __name__ in Python?

De __name__ variabele is een speciaal ingebouwde Python-variabele die de naam van de huidige module laat zien.

Het heeft verschillende waarden, afhankelijk van waar we het Python-bestand uitvoeren. Laten we naar een voorbeeld kijken.

Python-bestand uitvoeren als een script

Stel dat we een Python-bestand hebben met de naam helloworld.py met de volgende inhoud:

 print(__name__) 

Als we helloworld.py vanaf de opdrachtregel uitvoeren, wordt het uitgevoerd als een Python-script. We kunnen het Python-programma uitvoeren met de volgende opdracht:

$ python helloworld.py

Als we het programma als een script uitvoeren, wordt de waarde van de variabele __name__ ingesteld op __main__. Dus de output van het volgende programma zal zijn:

 __hoofd__ 

Python-bestand uitvoeren als een module

We kunnen ook een Python-bestand als module uitvoeren. Hiervoor moeten we dit bestand importeren in een ander Python-programma. Laten we naar een voorbeeld kijken.

Stel dat we een Python-bestand met de naam main.py in dezelfde map hebben als het heloworld.py-bestand. Het heeft de volgende inhoud:

 import helloworld 

Wanneer we dit bestand uitvoeren, hebben we de volgende uitvoer:

 Hallo Wereld 

Hier kunnen we zien dat het importeren van een module ook alle code in het modulebestand uitvoert.

Maar we kunnen zien dat in plaats van __main__ weer te geven, het programma de naam van de module laat zien, dwz helloworld.

Het is omdat, in de context van het uitvoeren van een Python-bestand als een module, de naam van de module zelf is toegewezen aan de __name__ variabele.

Gebruiken als voorwaardelijk met __naam__

Nu we hebben begrepen hoe de __name__ variabele waarden worden toegewezen, kunnen we de ifvoorwaardelijke clausule gebruiken om hetzelfde Python-bestand anders uit te voeren in verschillende contexten.

Laten we naar een voorbeeld kijken.

Stel dat we de inhoud van het helloworld.py- bestand wijzigen in het volgende:

 def main(): print("Hello World") if __name__=="__main__": main() 

Als we het nu als een script uitvoeren via de opdrachtregel, is de uitvoer:

 Hallo Wereld 

Als we het echter als een module uitvoeren door het in het main.py- bestand te importeren , wordt er geen uitvoer weergegeven omdat de main()functie niet wordt aangeroepen.

Hier hebben we een aangepaste main()functie gemaakt in het helloworld.py- bestand. Het wordt alleen uitgevoerd als het programma wordt uitgevoerd als een zelfstandig script en niet als een geïmporteerde module.

Dit is de standaardmanier om de main()functie expliciet te definiëren in Python. Het is een van de meest populaire use-cases van __name__ variabele van een Python-bestand.

Interessante artikelen...