La única operación especial de un módulo es el acceso a sus atributos:
m.name
, donde m es un módulo y name
accede a un nombre definido en la tabla de símbolos de m. Es posible
asignar valores a los atributos de un módulo (la sentencia import
no es, en sentido estricto, una operación sobre un objeto módulo; import
blas
no requiere que exista un objeto módulo denominado
blas, sino una definición (externa) de un módulo denominado
blas en algún lugar).
Todo módulo tiene un miembro especial llamado __dict__.
Es el diccionario que contiene la tabla de símbolos del módulo.
Modificar este diccionario realmente cambiará la tabla de símbolos del módulo,
pero no es posible la asignación directa al atributo __dict__
(es decir, se puede escribir m.__dict__['a'] = 1
, que
define m.a
con valor 1
, pero no se puede escribir
m.__dict__ = {}
.
Los módulos internos se presentan así:
<module 'sys' (built-in)>
. Si se cargan desde un fichero,
se presentan <module 'os' from
'/usr/local/lib/python2.0/os.pyc'>
.