PEP302表示load_module
必须返回sys.modules
中的条目(如果已存在)。这似乎是一个不必要的负担,因为调用者(即Python的导入系统)可能只是在调用load_module之前查看sys.modules
,并注意到load_module
没有真正的工作要做(但出于某种原因它没有这样做?)。
如果想要通知加载器正在尝试导入,似乎调用my_loader.already_loaded(module)
(或其他类似的接口)会更好,因为那样,load_module
可以专注于它的“真实” “工作,而不必担心模块是否已经在sys.modules
。