stats online

Comment Faire Pour Qu'une Fonction Ne Marche Qu'une Fois Python


Comment Faire Pour Qu'une Fonction Ne Marche Qu'une Fois Python

Salut ! Asseyez-vous, prenez un café, et parlons d'un truc sympa en Python. Vous êtes-vous déjà demandé comment faire en sorte qu'une fonction ne s'exécute qu'une seule fois ? C'est plus simple qu'il n'y paraît, promis !

L'idée, c'est d'utiliser une variable – appelons-la "déjà_exécutée" – qui nous sert de drapeau. Au début, elle est à False (faux). Dès qu'on exécute la fonction pour la première fois, on la met à True (vrai). Ensuite, à chaque fois qu'on rappelle la fonction, on vérifie si "déjà_exécutée" est à True. Si c'est le cas, on ne fait rien !

Une méthode simple : le drapeau (flag)

Voici un exemple concret. Imaginez une fonction qui doit initialiser une base de données. On veut absolument que cette initialisation ne se fasse qu'une seule fois, même si on appelle la fonction plusieurs fois :


deja_executee = False

def initialiser_db():
    global deja_executee
    if not deja_executee:
        # Ici, le code d'initialisation de la base de données
        print("Initialisation de la base de données...")
        deja_executee = True
    else:
        print("La base de données a déjà été initialisée.")

initialiser_db() # Initialise la base
initialiser_db() # Ne fait rien

Vous voyez ? C'est tout simple ! On utilise le mot-clé global pour pouvoir modifier la variable deja_executee qui est définie en dehors de la fonction. C’est une technique de base, mais super utile. Parfois, les solutions les plus simples sont les meilleures, n'est-ce pas ?

Une approche plus "Pythonique" : les décorateurs

Maintenant, pour ceux qui aiment les choses un peu plus élégantes, on peut utiliser un décorateur. Un décorateur, c'est une fonction qui prend une autre fonction en argument et qui la modifie (sans vraiment la modifier, en fait – c'est plus comme si on ajoutait une couche supplémentaire). C'est comme mettre un joli nœud papillon à votre fonction !

Tape 2 Crer Une Fonction Python Pour Azure Functions
Tape 2 Crer Une Fonction Python Pour Azure Functions

Voilà comment on pourrait faire :


def une_seule_fois(fonction):
    deja_executee = False

    def wrapper(args, kwargs):
        nonlocal deja_executee
        if not deja_executee:
            fonction(args, kwargs)
            deja_executee = True
        else:
            print("Fonction déjà exécutée.")

    return wrapper

@une_seule_fois
def faire_quelque_chose():
    print("Faire quelque chose d'important...")

faire_quelque_chose()
faire_quelque_chose()

Ici, une_seule_fois est notre décorateur. Le @une_seule_fois au-dessus de la fonction faire_quelque_chose indique qu'on applique ce décorateur à cette fonction. Le mot-clé nonlocal est essentiel ici pour modifier la variable deja_executee qui est définie dans la fonction englobante.

Annexe 1 : Quelques fonctions Python utiles - Pierre Giraud
Annexe 1 : Quelques fonctions Python utiles - Pierre Giraud

Les décorateurs, c’est puissant ! Ça permet de réutiliser du code et de rendre votre code plus propre et plus lisible.

Alors, laquelle de ces méthodes vous préférez ? La version simple avec le drapeau, ou la version plus élégante avec le décorateur ? Le plus important, c’est de choisir celle qui vous semble la plus claire et la plus facile à comprendre pour votre projet. N'hésitez pas à expérimenter !

Voilà, on a fait le tour ! J'espère que cette petite explication vous aura été utile. Et n'oubliez pas, le plus important, c'est de s'amuser en programmant ! À la prochaine, et bonne programmation !

Listes en Python : application aux suites et aux fonctions- Terminale Introduction aux fonctions en langage Python - YouTube Python : Fonction somme pour additionner les éléments d'une liste - YouTube Listes en Python : application aux suites et aux fonctions- Terminale Les bases en python: Comment definir et appeler une fonction en python Les Fonctions Python - YouTube 10. Fonctions - Cours de Python exemple de boucle while python 10. Fonctions - Cours de Python 12. Plus sur les fonctions - Cours de Python Algorithmique et programmation - 3e - Cours Mathématiques - Kartable Python #9 : Les fonctions : Qu'est ce qu’une fonction et comment

You might also like →