开发必备知识点---根据字符串导入模块并且找到类

Posted xjmlove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发必备知识点---根据字符串导入模块并且找到类相关的知识,希望对你有一定的参考价值。

 1 import importlib
 2 
 3 # 根据字符串 找到导入的模块和类
 4 
 5 # 在同级目录下创建xxx.py文件,然后通过python的importlib模块导入
 6 m = importlib.import_module(xxx)
 7 
 8 # 导入过来后执行了xxx.py文件的print()   根据字符串导入模块
 9 
10 print(m)  # <module ‘xxx‘ from ‘D:\学习历程\老男孩\第七模块\pro_crm\rbac\xxx.py‘>
11 
12 cls = getattr(m, Foo)
13 print(cls)  # <class ‘xxx.Foo‘>
14 
15 # 实例化一个对象
16 obj = cls(江子牙)
17 
18 # 执行对象的方法
19 obj.func()  # 江子牙
20 
21 # 根据path导入该模块
22 RBAC_USER_MODEL_CLASS = x.xxx.X
23 
24 # 获取模块名称和类的名称
25 module_path, model_class_name = RBAC_USER_MODEL_CLASS.rsplit(., maxsplit=1)
26 
27 print(module_path, model_class_name)
28 
29 m = importlib.import_module(module_path)
30 
31 cls = getattr(m, model_class_name)

django也有个模块有这个功能,其实内部就是通过上面实现的。

1 from django.utils.module_loading import import_string
2 
3 m = import_string(xxx.Foo)
4 print(m)
5 
6 # 根据字符串导入模块
7 # <class ‘xxx.Foo‘>

 

以上是关于开发必备知识点---根据字符串导入模块并且找到类的主要内容,如果未能解决你的问题,请参考以下文章

设计一个成功的微服务,堪称必备的9大基础知识

python学习必备精选文章50篇:依赖管理模块与包

python根据字符串导入模块

python根据字符串导入模块

python 知识点:反射 之 getattr()实现以字符串形式导入模块和执行函数

SpringMvc必备面试知识点