Python 动态导入模块 importlib 使用介绍
demo
$ cat helloworld.py
# -*- coding: utf-8 -*-
from datetime import datetime
HOME_1 = "/home/xiexianbin"
def say_hello():
print(f'Hello func, datetime {datetime.now()}')
$ cat test_importlib.py
# -*- coding: utf-8 -*-
import importlib
if __name__ == '__main__':
moduleSrc = 'helloworld'
funcName = 'say_hello'
# 动态导入模块,此时,lib 就相当于 helloworld
lib = importlib.import_module(moduleSrc)
# 动态导入函数
function = getattr(lib, funcName)
# 调用函数
function()
> import importlib
> module_ = importlib.import_module('helloword')
> a = 1
> home = getattr(module_, f'HOME_{a}')
or
> import importlib, helloword
> a = 1
> home = getattr(helloword, f'HOME_{a}')
说明
importlib
也可以使用 __import__
替代。