Petite plongée dans l'univers des namespaces en Python

Magazine
Marque
Contenu Premium


Résumé

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 :

>>> list
<class 'list'>
>>> list()
[]
>>> list = 2
>>> list
2
>>> list()
Traceback (most recent call last):
  File...
Cet article est réservé aux abonnés. Il vous reste 94% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite