Très bien, jouons à un petit jeu, pouvez-vous deviner quelle sera la sortie de ce programme ?
J'ai ici est égal à un.
Ensuite, nous créons une fonction appelée confusion où nous avons un égal à cinq et nous retournons une ma question est, lorsque nous
imprimons A et lorsque nous imprimons confusion, que vous attendez-vous à ce qu'il se passe ici ?
Prenez une seconde pour déterminer si vous en avez besoin, et découvrons-le.
Un sur cinq.
C'est ce que vous attendiez ?
Allons ligne par ligne.
Tout d'abord, nous attribuons la valeur un à la variable A, nous créons ensuite une fonction appelée confusion et l'interpréteur Python va dire, d'accord, fonction
de confusion, je sais ce que c'est.
Je vais le mettre en mémoire.
Lorsque vous avez besoin de m'utiliser, faites-le moi savoir.
Et puis ça va aller à la ligne huit et la ligne huit va dire, hé, imprimez un qu'est-ce qu'un ..
Eh bien, la seule fois où j'ai vu A, c'est ici, un égal.
Alors pour mémoire ce que dire équivaut à un.
Mais alors, quand je lance une confusion comme celle-ci.
Je vais dire, hé, A va être égal à cinq et maintenant nous revenons, ce qui est cinq.
OK, et si je change l'ordre de ça ?
Et si j'y allais comme ça ?
Que va-t-il se passer ?
Si je clique, cours.
C'est ce que vous attendiez ?
Encore une fois, nous en avons une proche, puis nous définissons la fonction puis nous imprimons la confusion.
Maintenant, la confusion ici va attribuer un égal à cinq, puis retourner A, mais pourquoi cela n'a-t-il pas changé ?
Pourquoi A est-il toujours égal à un au moment où nous arrivons ici ?
Et c'est à cause de la portée, non?
Ce que fait l'interpréteur Python, c'est quand il exécute la fonction de confusion, il va dire, hé, A va
être égal à cinq, mais je crée ici une variable appelée A dans mon propre univers.
Je ne sais rien sur un égal ici.
J'ai mon propre univers et après avoir exécuté cette fonction, eh bien, nous avons terminé.
Nous avons renvoyé la fonction et elle a complètement disparu.
Mais nous n'avons jamais laissé l'univers dans la portée globale.
Il y a donc un ensemble de règles que l'interpréteur Python suit pour vérifier une variable et les règles sont les
suivantes.
Tout d'abord, il va vérifier auprès du local.
Commencez donc par local et ce que nous appelons une portée locale.
Une étendue locale est une étendue qui fait partie de cette fonction locale.
Donc A est une portée locale.
Ça va vérifier là-bas.
Hé, je connais la variable ?
A Eh bien, ouais.
Quand je retourne A, j'ai une variable définie ici, donc ça commence là.
Mais disons qu'il n'y en avait pas.
Disons que je supprime et que je clique sur exécuter ici.
Je reçois les deux une fois, car la deuxième règle est que s'il n'y a rien dans la variable locale ou la portée
locale, alors numéro deux, y a-t-il une école locale parente ?
Dans notre cas, quel est le parent du dysfonctionnement ?
Eh bien, c'est la portée globale, mais nous pouvons aussi faire une autre fonction.
Disons que parent et parent est un parent de la fonction de confusion.
Et ici, disons que a égale deux 10.
Maintenant, ici, nous reviendrons.
Confusion juste pour que nous puissions l'utiliser à nouveau et l'exécuter.
Alors appelons parent.
Et cliquez sur exécuter.
Très bien, allons-y pour que ce ne soit pas trop déroutant.
Nous avons leur fonction parent qui est appelée.
Ainsi, lorsque nous appelons cela, nous attribuons un égal à dix, puis nous créons également une nouvelle fonction, la confusion.
Et puis finalement, nous renvoyons la confusion et l'exécutons réellement.
Nous allons donc retourner A, puis imprimer ici quelle que soit la valeur de A, qui est 10.
Et pourquoi est-ce que?
Eh bien, parce que nous commençons d'abord par la portée locale.
Hé, cette confusion, tu sais ce qu'est A ?
Non, je ne l'ai pas dans ma portée locale, OK, ma portée locale parent l'a-t-elle ?
Donc ça va monter d'un niveau et dire, hé, est-ce que les parents fonctionnent de nos jours ?
Oui, j'en ai près de 10.
Il va donc imprimer que la troisième règle ou le troisième ordre est global.
Et global est ce que nous appelons l'indentation de rien, c'est ce fichier, n'est-ce pas, quel que soit le fichier qui est global dans notre
cas, si A égal à dix n'existe pas ici, il n'y a pas de local, il n'y a pas de parent
local.
Et je clique sur exécuter.
Il vérifie la portée globale.
Et puis enfin, il y a une autre règle, et c'est le numéro quatre, et c'est délicat,
et c'est ce que nous appelons construit en Python.
Ou des fonctions python intégrées.
Python est donc livré avec des fonctions prédéfinies telles que celles dont nous avons déjà parlé.
Cela, disons, donnez-lui juste cinq.
Va vérifier ou en fait ne lui donnons rien, faisons-en juste ici.
Quand je lance ça.
Je suis construit en fonction certains.
Maintenant, comment savait-il ce que c'était, quelle était cette variable à la fin de la journée ?
Eh bien, c'est parce qu'il a dit, hé, est-ce que j'en ai à l'intérieur de cet univers ?
Non, je ne le fais pas.
OK, est-ce que j'en ai dans mon périmètre parent ?
Non, je ne le fais pas.
OK, j'ai une somme en global ?
Non, il n'y a rien ici.
Et puis la dernière chose qu'il va vérifier est, hé, une sorte de fonction python intégrée.
Ouais.
Python nous en donne en fait pour que vous puissiez l'utiliser pour qu'il ne se diffuse pas.
Et ce sont les règles de portée que l'interpréteur Python tombe très, très cool.
Il y a encore quelques autres choses que nous devons apprendre.
Alors je vous retrouve dans la prochaine vidéo.