gpt4 book ai didi

python - python unittest doc推荐的惰性导入方法如何做?

转载 作者:行者123 更新时间:2023-11-28 19:00:35 24 4
gpt4 key购买 nike

Python 的文档说有一种替代本地导入的方法可以防止在启动时加载模块:

https://docs.python.org/3/library/unittest.mock-examples.html#mocking-imports-with-patch-dict

...to prevent “up front costs” by delaying the import. This can also be solved in better ways than an unconditional local import (store the module as a class or module attribute and only do the import on first use).

括号里的解释我不明白。我该怎么做呢?不管怎么想,我似乎最终还是选择了本地进口。

最佳答案

文档可能指的是使用 importlib.import_module ,它公开了 Python 的 import 功能:

import importlib

class Example():

TO_IMPORT = "os" # the name of the module to lazily import
__module = None

def __init__(self):
if self.__module is None:
self.__module = importlib.import_module(self.TO_IMPORT)

请注意,这种方式的模块仅在类首次实例化时导入一次,并且在全局命名空间中不可用。

此外,它允许您更改导入的模块,这可能很有用,例如在同一类用作不同后端的接口(interface)的情况下:

import importlib

class Example():

def __init__(self, backend="some_module"):
self.module = importlib.import_module(backend)

关于python - python unittest doc推荐的惰性导入方法如何做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53038790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com