簡體   English   中英

我如何做python unittest doc推薦的懶惰導入方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM