2.1.7.1 モジュール

モジュールに関して唯一の特別な操作は属性へのアクセスです。つまり、 m.nameのことで、mはモジュールでnamemのシンボルテーブルで定義されている名前にアクセスします。 モジュール属性には代入も可能です。(厳密にいえばimport文はモジュールオブジェクトに対する操作ではありません。import foofooという名前のモジュールオブジェクトが存在することを必要としてはいなく、むしろfooという名前のモジュールが何処にあるかの(外部)定義を必要としていることに注意して下さい。)

すべてのモジュールは__dict__を特別なメンバとして持ちます。 これはモジュールのシンボルテーブルを含む辞書です。 この辞書を変更することは実際にはモジュールのシンボルテーブルを変更することです。しかし__dict__属性に直接代入することはできません。(例えば、 m.a1と定義するためにm.__dict__['a'] = 1と書くことはできますが、m.__dict__ = {}と書くことはできません。)

モジュールは<module 'sys'>のように表示されます。


guido@python.org