• # Bien utile...

    Posté par . En réponse au journal Mon avis sur chatGPT. Évalué à 3.

    Je ne suis pas un pro du python, et donc j’avais une question... même si je sais que la réponse de linuxfr sera pertinente et pas forcément concensuelle. Je lui ai demandé ceci :

    Comment je peux avoir une variable d’une fonction accessible dans une sous fonction en python

    Vous pouvez rendre une variable de fonction accessible dans une sous-fonction en utilisant l'instruction "nonlocal" dans la sous-fonction. Cela indique à Python que la variable est définie dans l'espace de nom de la fonction parente, plutôt que dans celui de la sous-fonction.
    Exemple:

    def outer_function():
     x = "local"
     def inner_function():
     nonlocal x
     x = "nonlocal"
     print("inner:", x)
     inner_function()
     print("outer:", x)
    outer_function()
    # Output: inner: nonlocal
    # outer: nonlocal

    Sinon, vous pouvez également utiliser la variable globale pour rendre la variable accessible dans la sous-fonction en utilisant l'instruction "global" dans la sous-fonction.
    Exemple :

    x = "global"
    def outer_function():
     def inner_function():
     global x
     x = "global modified"
     print("inner:", x)
     inner_function()
     print("outer:", x)
    outer_function()
    # Output: inner: global modified
    # outer: global modified

    Fin

    On peut remarquer qu’il n’est pas fixé sur mettre une espace avant les ’:’ pour les exemples ;-)
    Moi je trouve que c’est utile et rapide pour certains trucs.