当前位置: 首页 > 后端技术 > Python

Python按名称导入模块

时间:2023-03-25 21:31:51 Python

我们在自定义一个框架的时候,需要先导入依赖的模块。可以使用如下导入方式defimport_object(name):#type:(_BaseString)->Any"""按名称导入一个对象.import_object('x')等价于'importx'.import_object('x.y.z')等同于'fromx.yimportz'。"""ifnotisinstance(name,str):#在python2上需要一个字节字符串。name=name.encode('utf-8')ifname.count('.')==0:return__import__(name,None,None)parts=name.split('.')obj=__import__('.'.join(parts[:-1]),None,None,[parts[-1]],0)try:returngetattr(obj,parts[-1])exceptAttributeError:raiseImportError("Nomodulenamed%s"%部分[-1])