Fonctions imbriquées Python

Fonctions dansPythonpeut être imbriqué dans d'autres fonctions.

Une fonction définie à l'intérieur d'une fonction n'est visible qu'à l'intérieur de cette fonction.

Ceci est utile pour créer des utilitaires utiles à une fonction, mais pas utiles en dehors de celle-ci.

Vous pourriez vous demander: pourquoi devrais-je «cacher» cette fonction, si elle ne fait pas de mal?

Premièrement, car il est toujours préférable de masquer les fonctionnalités locales à une fonction et non utiles ailleurs.

Aussi, parce que nous pouvons utiliser des fermetures (nous en parlerons plus tard).

Voici un exemple:

def talk(phrase):
    def say(word):
        print(word)
words <span style="color:#f92672">=</span> phrase<span style="color:#f92672">.</span>split(<span style="color:#e6db74">' '</span>)
<span style="color:#66d9ef">for</span> word <span style="color:#f92672">in</span> words:
    say(word)

talk(‘I am going to buy the milk’)

Si vous souhaitez accéder à une variable définie dans la fonction externe à partir de la fonction interne, vous devez d'abord la déclarer commenonlocal:

def count():
    count = 0
<span style="color:#66d9ef">def</span> <span style="color:#a6e22e">increment</span>():
    nonlocal count
    count <span style="color:#f92672">=</span> count <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>
    <span style="color:#66d9ef">print</span>(count)

increment()

count()

Ceci est particulièrement utile avec les fermetures, comme nous le verrons plus tard.


Plus de tutoriels python: