Introduction à la fonction main() en Python

-

Qu’est-ce que l’instruction « if __name__==__main__ » ? À quoi sert-elle ?

Première chose

D’après mon expérience, plus de 90% des personnes qui connaissent Python ont utilisé la fonction main(). Mais pour les 10% qui n’utilisent pas la fonction main(), le script Python fonctionne toujours. Même, les 90% de personnes ci-dessus n’utilisent parfois pas if '__name__' = '__main__' mais leur script fonctionne toujours. Vous vous êtes déjà demandé pourquoi ? Moi, je me suis souvent posé la question à mes débuts avec Python. Allons voir comment cela se passe.

Explication directe

Quand utiliser if __name__ = "__main__" :

  • Tout votre code est enveloppé dans une fonction, donc toutes les variables sont locales. Les programmes qui utilisent des variables locales sont plus rapides que ceux qui ne le font pas. Par conséquent, le script avec if __name__ = « __main__ » pourrait s’exécuter plusieurs fois plus vite.
  • Sans la sentinelle main, le code serait exécuté même si le script était importé en tant que module.
  • Il s’agit d’un code passe-partout qui protège les utilisateurs contre l’invocation accidentelle du script alors qu’ils n’en avaient pas l’intention. Voici quelques problèmes courants lorsque le garde est omis dans un script :
    • Si vous importez le script sans garde dans un autre script (par exemple, import my_script_without_a_name_eq_main_guard), alors le second script déclenchera l’exécution du premier au moment de l’importation et utilisera les arguments de la ligne de commande du second script. C’est presque toujours une erreur.
    • Si vous avez une classe personnalisée dans le script guardless et que vous l’enregistrez dans un fichier pickle, le fait de la dépickler dans un autre script déclenchera une importation du script guardless, avec les mêmes problèmes que ceux décrits dans le point précédent.

Explication détaillée

Python est l’un des langages de programmation les plus populaires à apprendre. La fonction principale en Python agit comme le point d’exécution de tout programme. Définir la fonction principale dans la programmation Python est une nécessité pour démarrer l’exécution du programme car elle n’est exécutée que lorsque le programme est exécuté directement et n’est pas exécutée lorsqu’elle est importée en tant que module.

Qu’est-ce que la fonction principale en Python ?

Dans la plupart des langages de programmation, il existe une fonction spéciale qui est exécutée automatiquement à chaque fois que le programme est exécuté. Cette fonction n’est rien d’autre que la fonction principale ou main() comme on l’appelle habituellement. Elle sert essentiellement de point de départ à l’exécution d’un programme.

En Python, il n’est pas nécessaire de définir la fonction principale à chaque fois que vous écrivez un programme. En effet, l’interpréteur Python exécute le programme à partir du début du fichier, sauf si une fonction spécifique est définie. Par conséquent, avoir un point de départ défini pour l’exécution de votre programme Python est utile pour mieux comprendre le fonctionnement de votre programme.

Dans la plupart des programmes/scripts Python, vous pouvez voir une définition de fonction, suivie d’une instruction conditionnelle qui ressemble à l’exemple ci-dessous :

def main():
    print("duythinbmt")
if "__name__" = "__main__":
    main()

Python a-t-il besoin de la fonction Main ?

Ce n’est pas une obligation d’avoir une fonction principale en Python, cependant, dans l’exemple ci-dessus, vous pouvez voir qu’il y a une fonction appelée « main() ». Elle est suivie d’une instruction conditionnelle « if » qui vérifie la valeur de « name » et la compare à la chaîne « main ». En cas d’évaluation à True, elle exécute main().

Et à l’exécution, il imprime « Hello, World ! ».

Ce type de modèle de code est très courant lorsque vous traitez des fichiers qui doivent être exécutés en tant que scripts Python et/ou importés dans d’autres modules.
Comprenons comment ce code s’exécute. Avant cela, il est nécessaire de comprendre que l’interpréteur Python définit le « nom » en fonction de la façon dont le code est exécuté. Donc, apprenons à connaître les modes d’exécution en Python

Modes d’exécution de Python

Il existe deux manières principales d’indiquer à l’interpréteur Python d’exécuter le code :

  • La manière la plus courante est d’exécuter le fichier en tant que script Python.
  • En important le code nécessaire d’un fichier Python à un autre.

Quel que soit le mode d’exécution que vous choisissez, Python définit une variable spéciale appelée name, qui contient une chaîne de caractères. Et comme je l’ai déjà dit, la valeur de cette chaîne dépend du mode d’exécution du code.

Parfois, lorsque vous effectuez une importation à partir d’un module, vous souhaitez savoir si la fonction d’un module particulier est utilisée en tant qu’importation ou si vous utilisez simplement le fichier .py (script Python) original de ce module.

Pour vous aider, Python dispose d’une variable intégrée spéciale, appelée « name ». Cette variable se voit attribuer la chaîne « main » en fonction de la façon dont vous exécutez le script.

Qu’est-ce que « main » en Python ?

La fonction principale de Python est le début de tout programme Python. Lorsque nous exécutons un programme, l’interpréteur exécute le code séquentiellement et n’exécutera pas la fonction principale si elle est importée en tant que module, mais la fonction principale n’est exécutée que lorsqu’elle est exécutée en tant que programme Python.

Ainsi, si vous exécutez le script directement, Python va attribuer « main » au nom, c’est-à-dire name= »main ». (Cela se produit en arrière-plan).

Par conséquent, vous finissez par écrire l’instruction conditionnelle if comme suit :

if __name__ == "__main__":
		main()

Par conséquent, si l’instruction conditionnelle est évaluée à True, cela signifie que le fichier .py (script Python) est exécuté directement.

Il est important de comprendre que, si vous exécutez quelque chose directement dans le shell ou le terminal Python, cette instruction conditionnelle est par défaut égale à True.

Par conséquent, les programmeurs écrivent toutes les définitions fonctionnelles nécessaires en haut de la page, puis écrivent cette déclaration à la fin, pour organiser le code.

En bref, la variable « name » vous aide à vérifier si le fichier est exécuté directement ou s’il a été importé.

Il y a quelques points que vous devez garder à l’esprit lorsque vous écrivez des programmes qui vont avoir la fonction principale. Je les ai énumérés en quatre étapes simples. Vous pouvez considérer cela comme une bonne nomenclature à suivre lors de l’écriture de programmes Python contenant la fonction principale.

  • Utilisez les fonctions et les classes dans la mesure du possible.
  • Utilisez le nom pour contrôler l’exécution de votre code.
  • Créez une fonction main() qui contient le code à exécuter.
  • Créez une fonction main() qui contient le code à exécuter. 😅

Conclusion

Maintenant, avec toutes les informations ci-dessus, je pense que nous en savons tous plus sur la fonction main() en Python, le mode d’exécution, et le point d’entrée du programme Python. Cela peut aider votre code à être plus Python et plus facile à corriger lorsque vous rencontrez des bogues.

Bon codage !

Alfred
Alfredhttps://www.alfreddagenais.com
Salut ! Moi, c'est Alfred, développeur dans l’âme et explorateur de l'infini Web. Je suis constamment à la recherche de nouvelles idées et je pense que le développement web et l'informatique ont le pouvoir de transformer le monde. Je suis un grand admirateur de l'expérimentation, parce que c'est souvent de là que naissent les idées les plus créatives. Je suis convaincu que l'humour est un ingrédient clé de la vie, alors j'essaie toujours de glisser une blague ou deux dans mon code (pas toujours facile à comprendre, mais c'est le risque à prendre). En dehors de la programmation, j'aime passer du temps avec ma famille et mes amis, découvrir de nouveaux endroits et cuisiner des plats délicieux (du moins, j'essaie). Si vous voulez discuter de développement web, d'innovation, ou tout simplement échanger des blagues, n'hésitez pas à me contacter. Je suis toujours partant pour une bonne conversation !

Share this article

Recent posts

Popular categories

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Recent comments