【转】动态导入模块的两种方法

动态导入模块方法1: __import__ 

说明:

  1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块。

  2. __import__(module)相当于import module

举例说明:

首先创建一个模块目录lib,然后在目录内创建一个模块为:aa.py

模块代码为:

class c(object):
def __str__(self):
return 'C language'

在lib目录平级新建一个测试的模块,使用 __import__ 动态以字符串形式导入lib下的aa模块。

lib = __import__('lib.aa') # 相当于import lib,lib.aa为字符串格式

c = lib.aa.c()
print(c)

动态导入模块方法2:import importlib

实例还是上面的lib.aa模块,这里使用importlib进行动态导入(这个方法好理解,也是官方建议使用的)

import importlib
aa = importlib.import_module('lib.aa')# 相当于import lib,lib.aa为字符串格式
c = aa.c()
print(c)

 

原文地址:https://www.cnblogs.com/yoyo008/p/9635742.html