Vous les utilisez tout le temps sans en avoir nécessairement conscience... mais comment fonctionnent les namespaces en Python ? Je vous propose dans cet article de les expérimenter au travers de différents exemples.
Reprenons simplement le dernier vers du PEP 20 [1], le Zen de Python :
« Namespaces are one honking great idea – let’s do more of those ! »
En français, on peut traduire cela par : les espaces de noms sont une excellente idée – faisons-en plus ! En effet, les namespaces sont essentiels pour empêcher les conflits de noms entre modules, classes et autres. Dans cet article, nous allons simplement partir d’exemples qui nous permettront petit à petit de schématiser l’enchaînement des namespaces.
1. Python built-in
Le premier namespace, celui qui semble le plus évident, est l’espace de noms réservé pour les mots-clés du langage lui-même.
Prenons l’exemple du mot-clé list permettant de créer une liste. Il fait bien partie des bulitins, pourtant il est possible de créer une variable portant ce nom :
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première