Je veux répondre à une question que vous vous posez peut-être ou non, mais c'est quelque
chose qui m'a pris des années à comprendre, et c'est pourquoi ne pas simplement tout avoir comme variables globales ?
Je veux dire, toute cette confusion de qui a accès à qui, à quel point ce serait facile si tout
était juste sur la page principale, toutes nos informations, toutes les données sur notre portée mondiale afin que tout ait accès
à tout.
Ne serait-ce pas plus simple ?
Et tu aurais un peu raison.
Je veux dire, ça ferait disparaître tout ce mal de tête, non ?
Mais vous devez vous rappeler que les machines n'ont pas une puissance infinie, n'ont pas de processeur infini, n'ont pas
de mémoire infinie, elles ont toutes des ressources limitées.
Et en tant que programmeurs, nous devons être conscients des ressources que nous utilisons car parfois cela peut nous coûter de
l'argent, parfois cela peut faire planter nos ordinateurs.
Et la portée en est une excellente démonstration.
Par exemple, ce code ici, lorsque cette fonction est exécutée, nous créons techniquement un seul
emplacement en mémoire pour la variable X.
Nous avons donc cette étagère dans notre ordinateur qui est X qui pointe vers local lorsque nous appelons réellement cette
fonction.
Et puis, quand nous disons non local ici, eh bien, nous disons simplement ne créez pas une autre étagère pour nous.
Utilisez simplement celui que nous avons déjà et affectez-le non local.
Si nous n'avions pas cette ligne, au moment où nous arrivons à la ligne sept, nous avons placé en mémoire X égal à local
et X égal à non local.
Nous avons donc maintenant deux emplacements en mémoire.
Maintenant, ce n'est pas grand-chose parce que, eh bien, de nos jours, nous avons beaucoup de mémoire.
Mais à mesure que les programmes deviennent de plus en plus gros, cela devient un problème.
OK, mais qu'en est-il d'une fonction ?
Je veux dire, nous avons appris que les fonctions nous permettent de ne pas nous répéter et de pouvoir appeler plusieurs
fois.
Mais une autre bonne utilisation des fonctions est qu'une fois que nous avons appelé cette fonction et que tout
cela est fait, l'ordinateur et l'interpréteur Python détruisent spécifiquement toute cette mémoire.
C'est-à-dire qu'une fois que nous avons terminé avec la fonction externe, je ne peux pas vraiment appeler print X ici.
Cela va me donner une erreur.
Ça va dire que je n'ai aucune idée de ce qui existe.
Et pourquoi est-ce que?
C'est parce qu'après avoir appelé cette fonction, le python sera appelé le ramasse-miettes va dire, hé, il semble
que nous ayons terminé avec cette fonction.
Et je vois bien cette variable X, et cette variable X que nous n'allons pas utiliser car nous en avons fini avec
cette fonction.
Je vais donc ramasser ces ordures et les jeter ensuite.
Je vais donc vider cette armoire à mémoire pour que d'autres ressources ou d'autres programmes puissent l'utiliser.
Et c'est une fonctionnalité vraiment intéressante où Python les supprime automatiquement pour vous afin que vous n'encombriez pas
la mémoire de l'ordinateur.
Et c'est pourquoi SCOP est utile.
Nous n'avons pas à y penser en détail comme je l'ai mentionné, mais il est bon de
savoir qu'il est là pour que vos programmes n'accaparent pas beaucoup de mémoire et qu'ils puissent fonctionner efficacement.
C'est un sujet un peu avancé, mais je voulais l'inclure ici pour que vous puissiez réfléchir aux raisons pour
lesquelles les programmes sont conçus de cette façon.
Très bien.
Je vais arrêter de parler maintenant.
Je te verrai dans la prochaine vidéo.
Bye Bye.