动态导入模块:__import__importlib动态导入的使用场景

Posted 知识补全计划

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态导入模块:__import__importlib动态导入的使用场景相关的知识,希望对你有一定的参考价值。


相关内容:

  • __import__
  • importlib
  • 动态导入的使用场景

 

首发时间:2018-02-23 16:06


__import__:

功能:

  • 是一个函数,可以在需要的时候动态导入模块

使用:

 

  • __import__(模块名)
  • 但对于多级目录,只会导入第一级image
  • 目录结构:image
  • imageimage
mo1=__import__("des")
mo2=__import__("child.child")
mo3=__import__("child")

print(mo1,mo2,mo3)#mo3与mo2相同

#同级目录使用模块对象来调用
mo1.B()
mo1.fun2()

#对于目录下的,动态导入只会导入第一级目录
mo2.child.A()#虽然没有具体定义类体,但无错就是成功
mo2.child.fun1()
mo3.child.fun1()

 

 


importlib:

介绍:

  • 是一个模块,可以进行动态导入模块

用法:

  • importlib.import_module("模块名")
import importlib
mo1= importlib.import_module(\'des\')
mo2= importlib.import_module(\'child.child\')
print(mo1,mo2)#mo2直接到child.child

des_B= mo1.B()
mo1.fun2()

mo2.fun1()

 

 


动态导入模块的使用场景:

  • 动态切换模块
  • 使用反射判断是否有对应类、方法,无则设置
import importlib
mo3= importlib.import_module(\'child\')
def func4():
    print(" run in func4")

if hasattr(mo3,"child1"):
    print("yes")
    c=getattr(mo3,"child")
else: #没有则设置
    setattr(mo3,"func4",func4)

mo3.func4()
  • 其他。。。

 


以上是关于动态导入模块:__import__importlib动态导入的使用场景的主要内容,如果未能解决你的问题,请参考以下文章

动态导入模块__import__("str")

基础入门_Python-模块和包.运维开发中__import__动态导入最佳实践?

Python内置函数 __import__ 动态加载模块

导入模块的方法(常规导入与动态导入)

python 动态模块导入

python动态模块导入