La seule opération spéciale sur un module est l'accès à un attribut:
m.nom, où m est un module et nomaccède à un nom défini dans la table des symboles de m.
Des valeurs peuvent être affectées à des attributs de modules.
(Notons que le mot clef import n'est pas, à proprement parler,
une opération sur un objet module. import truc ne nécessite
pas qu'un objet module truc existe, mais plutôt qu'il existe
quelque part une définition (externe) d'un module truc.)
Le membre __dict__ est un membre spécial, présent dans chaque module.
C'est le dictionnaire contenant la table des symboles du module.
Une modification de ce dictionnaire va vraiment changer la table des symboles
du module, mais une affectation directe à __dict__ n'est pas
possible (autrement dit, vous pouvez faire m.__dict__['a'] = 1qui affecte la valeur 1 à m.a mais vous ne pouvez pas faire
m.__dict__ = {}).
Les modules intégrés de l'interpréteur sont écrits de cette façon:
<module 'sys' (built-in)>. S'ils sont chargés depuis un
fichier, ils sont écrits ainsi:
<module 'os' from '/usr/local/lib/python1.5/os.pyc'>.