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