2024-06-26 13:18:52 发布
网友
在我的模块中,我有几个函数依赖于启动时间较长的外部模块。如何使用^{}?如果我有
import veggies
或者
from veggies.brussels import sprouts
我该如何替换这些语句来使用LazyLoader,从而将模块内容的执行推迟到需要的时候?在
LazyLoader
从文档中看不出如何使用它。没有示例,nullege code search只提供了Python本身包含的单元测试。在
original issue中有一些代码似乎是完全导入的:
以下文件延迟导入两个模块:
import sys import importlib.util def lazy(fullname): try: return sys.modules[fullname] except KeyError: spec = importlib.util.find_spec(fullname) module = importlib.util.module_from_spec(spec) loader = importlib.util.LazyLoader(spec.loader) # Make module with proper locking and get it inserted into sys.modules. loader.exec_module(module) return module os = lazy("os") myown = lazy("myown") print(os.name) myown.test()
为了测试,我在myown.py中使用了以下内容。在
myown.py
这很好地工作(python3.8a0)。在
original issue中有一些代码似乎是完全导入的:
以下文件延迟导入两个模块:
为了测试,我在
^{pr2}$myown.py
中使用了以下内容。在这很好地工作(python3.8a0)。在
相关问题 更多 >
编程相关推荐