importlib模块和split的结合使用

1、给定一个文件结构,在main.py中于运用importlib 导入a.py运行其中的show()方法

├── clazz
│   ├── __init__.py
│   ├── a.py
│   └── b.py
└── main.py

a.py 的代码

def show():
    print("show A")

importlib模块支持传入字符串来引入一个模块,我们可以将show()的路径传入importlib从而达到执行的效果

方法一:
import importlib
a=importlib.import_module("clazz.a")#将模块路径作为参数传入importlib
a.show()
方法二:
#将方法show一并写入路径,通过spilt进行分割
improt importlib
path='clazz.a.show'
cls_path,classname=path.rsplit('.',maxsplit=1)#通过右分割'.'的方式得到cls_path 和执行函数名
cls=importlib.import_module(cls_path)
cls_obj=getattr(cls,classname)#反射得到对象
cls_obj()#直接运行得到运行结果

 

你可能感兴趣的:(importlib模块和split的结合使用)