ในการนำเข้าโมดูล Python แบบไดนามิก คุณสามารถใช้ฟังก์ชัน import_module(moduleName) ของแพ็คเกจ importlib คุณต้องมี moduleName เป็นสตริง ตัวอย่างเช่น
>>> from importlib import import_module >>> moduleName = "os" >>> globals()[moduleName] = import_module(moduleName)
หากคุณต้องการนำเข้ารายการโมดูลแบบไดนามิก คุณสามารถเรียกสิ่งนี้จาก for loop ได้ ตัวอย่างเช่น
>>> import importlib >>> modnames = ["os", "sys", "math"] >>> for lib in modnames: ... globals()[lib] = importlib.import_module(lib)
การเรียก globals() ส่งคืน dict เราสามารถตั้งค่าคีย์ lib สำหรับแต่ละไลบรารีเป็นวัตถุที่ส่งคืนให้เราเมื่อนำเข้าโมดูล
หากคุณได้นำเข้าแพ็คเกจและตอนนี้ต้องการนำเข้าหนึ่งในโมดูลแบบไดนามิก คุณยังสามารถใช้ฟังก์ชันเดิมและรับผลลัพธ์ที่คาดหวังได้ โมดูลที่คุณต้องการนำเข้าควรมีชื่อเต็ม ไม่ใช่แค่ชื่อโมดูลเท่านั้น ตัวอย่างเช่น
>>> import importlib >>> pack = 'datetime' >>> mod = 'date' >>> globals()[pack] = importlib.import_module(pack) >>> globals()[pack + '.' + mod] = importlib.import_module(pack + '.' + mod)