Python 动态导入模块 importlib 使用

发布时间: 更新时间: 总字数:145 阅读时间:1m 作者: 分享 复制网址

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__ 替代。

最新评论
加载中...
Home Archives Categories Tags