
214
|
第 6 章 模組
# 只在 v3 中運行:充填已經初始化的模組
# 在這個玩具範例中只印出一個訊息
print('NOTE: module {!r} not yet written'.format(mod))
def load_module(self, fullname):
# 只在 v2 中運行:製作並充填模組
if fullname in sys.modules: return sys.modules[fullname]
# 在這個玩具範例中只印出一個訊息
print('NOTE: module {!r} not written yet'.format(fullname))
# 製作新的空模組,將它放入 sys.modules
mod = sys.modules[fullname] = types.ModuleType(fullname)
# 最小程度地初始化新模組並將之回傳
mod.__file__ = 'dummy_{}'.format(fullname)
mod.__loader__ = self
return mod
# 將此類別加到掛接器(hook),並將其虛構路徑標示器加到路徑
sys.path_hooks.append(ImporterAndLoader)
sys.path.append(ImporterAndLoader.fake_path)
if __name__ == '_ _main_ _': # 作為主要指令稿執行時的自我測試
import missing_module ...