‫Oh, mon garçon, il y a du code sur l'écran et ça a l'air terriblement déroutant.
‫Ceci est un exemple d'une fonction vraiment alambiquée et compliquée que vous n'écririez jamais, mais ce sera bon
‫à des fins d'exercice.
‫Et nous parlons spécifiquement de cela ici appelé non local.
‫C'est en fait un nouveau mot-clé dans Python trois.
‫Et comme vous pouvez le voir, mon Reppel ne le remarque même pas.
‫Il n'est donc même pas surligné en bleu car il s'agit d'une nouvelle fonctionnalité.
‫Mais je veux vous en parler et vous dire ce qu'il fait.
‫Le mot clé non local est utilisé pour faire référence à cette partie, ce parent local.
‫C'est une façon pour nous de dire, hé, je veux utiliser une variable qui n'est pas une variable globale, mais qui
‫sort du cadre de ma fonction.
‫Donc, sur la base de cette définition, essayez de mettre la vidéo en pause et voyez ce que cette fonction pourrait
‫faire, je vais l'exécuter maintenant, puis parcourir le code si je clique sur exécuter.
‫C'est ce que nous obtenons.
‫Alors parlons-en.
‫Nous avons une fonction externe, puis nous appelons la fonction externe.
‫Donc l'interpréteur Python va dire, d'accord, nous avons une variable X qui est locale
‫à la fonction externe.
‫Et puis à l'intérieur d'ici, nous allons définir une fonction interne, une autre fonction.
‫Et ici, avant même d'appeler cela, nous avons sauté à la ligne neuf et avons dit, d'accord, appelez la fonction interne.
‫Nous revenons et nous disons, hé, ligne cinq, je veux utiliser X non local.
‫Hmm.
‫Qu'est-ce que ça veut dire?
‫Eh bien, je veux utiliser cette variable X car elle n'est pas locale.
‫C'est-à-dire que je ne veux pas créer une nouvelle variable X.
‫Je veux passer la portée à mes parents, la portée de mon parent local et saisir tout ce que vous y trouverez.
‫Tant qu'il ne s'agit pas d'une variable globale, tout parent fera l'affaire.
‫Je veux saisir ce non local.
‫Alors maintenant, ce X fait référence à la fonction externe ici.
‫Ainsi, lorsque nous disons que X est égal à non local, nous attribuons cette nouvelle chaîne.
‫Et en remplaçant ce local de sorte que lorsque nous imprimons interagisse, nous obtenions non local, mais également lorsque
‫nous imprimons le X externe, nous avons modifié cette portée externe avec le mot-clé nonlocal.
‫Cela devient donc non local également.
‫Si je supprime cette ligne et que je la commente et que je clique sur exécuter.
‫Vous voyez la différence maintenant que nous avons le non local interne, mais le local externe n'a pas été modifié car
‫il s'agit d'une nouvelle variable.
‫Encore une fois, je soutiens que cela rend votre code plus compliqué qu'il ne devrait l'être.
‫Il y a donc des cas particuliers où vous voudrez peut-être l'utiliser, mais si vous pouvez essayer de
‫rendre votre code prévisible, où vous pouvez éviter d'utiliser des choses comme non locales et globales, attention, elles sont là pour une raison
‫car elles sont utiles dans certains situations.
‫Cela dit, gardez à l'esprit, rendez votre code prévisible, nettoyez votre code et je vous verrai dans la
‫prochaine vidéo.