Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA

Complément - niveau basique

L’objet de ce complément est de vous montrer qu’avec Python vous n’avez pas à vous préoccuper de la mémoire. Pour expliquer la notion de gestion de la mémoire, il nous faut donner un certain nombre de détails sur d’autres langages comme C et C++. Si vous souhaitez suivre ce cours à un niveau basique vous pouvez ignorer ce complément et seulement retenir que Python se charge de tout pour vous :)

Complément - niveau intermédiaire

Langages de bas niveau

Dans un langage traditionnel de bas niveau comme C ou C++, le programmeur est en charge de l’allocation - et donc de la libération - de la mémoire.

Ce qui signifie que, sauf pour les valeurs stockées dans la pile, le programmeur est amené :

Avec ce genre de langage, la gestion de la mémoire est un aspect important de la programmation. Ce modèle offre une grande flexibilité, mais au prix d’un coût élevé en matière de vitesse de développement.

En effet, il est assez facile d’oublier de libérer la mémoire après usage, ce qui peut conduire à épuiser les ressources disponibles. À l’inverse, utiliser une zone mémoire non allouée peut conduire à des bugs très difficiles à localiser et à des problèmes de sécurité majeurs. Notons qu’une grande partie des attaques en informatique reposent sur l’exploitation d’erreurs de gestion de la mémoire.

Langages de haut niveau

Pour toutes ces raisons, avec un langage de plus haut niveau comme Python, le programmeur est libéré de cet aspect de la programmation.

Pour anticiper un peu sur le cours des semaines suivantes, voici ce que vous pouvez garder en tête s’agissant de la gestion mémoire en Python :

# quand vous faites par exemple ceci

print("hello world")

# Python a alloué pour vous la mémoire nécessaire 
# pour ranger l'objet chaine "Hello world"
# et vous n'avez pas besoin de libérer cette mémoire vous-même
# le garbage collector s'en occupera en temps utile
hello world