[英]How do I do python unittest doc's recommended method of lazy import?
Python的文檔說,有一種替代本地導入,以防止在啟動時加載模塊:
https://docs.python.org/3/library/unittest.mock-examples.html#mocking-imports-with-patch-dict
......通過推遲進口來防止“前期成本”。 這也可以通過比無條件本地導入更好的方式解決(將模塊存儲為類或模塊屬性,並且僅在首次使用時執行導入)。
我不明白括號中的解釋。 我該怎么做呢? 不過我考慮一下,無論如何,我似乎最終都是本地進口商品。
該文檔可能涉及使用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)
請注意,這樣,模塊僅在首次實例化類時導入一次,並且在全局命名空間中不可用。
此外,它允許您更改導入的模塊,這可能是有用的,例如在將相同的類用作不同后端的接口的情況下:
import importlib
class Example():
def __init__(self, backend="some_module"):
self.module = importlib.import_module(backend)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.