2.1.7.1 Modules

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'>.