Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Dynamic Import โมดูล Python ระหว่างรันโปรแกรม (importlib)

ใช้ importlib.import_module() นำเข้าโมดูลจากชื่อเป็น String ระหว่าง Runtime

Import โมดูลเดี่ยว

>>> from importlib import import_module
>>> module_name = "os"
>>> globals()[module_name] = import_module(module_name)
>>> os.getcwd()  # ใช้ได้เลย

Import หลายโมดูลจาก List

>>> import importlib
>>> modnames = ["os", "sys", "math"]
>>> for lib in modnames:
...     globals()[lib] = importlib.import_module(lib)

Import Submodule ของ Package

>>> import importlib
>>> pack = 'datetime'
>>> mod = 'date'
>>> globals()[pack] = importlib.import_module(pack)
>>> globals()[pack + '.' + mod] = importlib.import_module(pack + '.' + mod)
>>> datetime.date.today()

กรณีใช้จริง: Plugin System

def load_plugins(plugin_names):
    plugins = {}
    for name in plugin_names:
        try:
            plugins[name] = importlib.import_module(f'myapp.plugins.{name}')
        except ImportError:
            log.warning(f"Plugin {name} not found")
    return plugins

ใช้ importlib.import_module() นำเข้าโมดูลจากชื่อ String ระหว่างรันโปรแกรม รองรับ Submodule และ Plugin System