Python importlib(动态导入模块)

使用 Python importlib(动态导入模块) 可以将字符串型的模块名导入

示例:

import importlib

module = ‘module name‘                      # 字符串型模块名
test = importlib.import_module(module)      # 导入模块
print(test.Class().attr)                    # 打印 Class 类的 attr 属性

原文地址:https://www.cnblogs.com/dbf-/p/10667248.html

时间: 2024-10-06 18:16:48

Python importlib(动态导入模块)的相关文章

python中动态导入模块

如果导入的模块不存在,Python解释器会报 ImportError 错误: >>> import something Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named something 有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了Strin

python 反射 动态导入模块 类attr属性

1.反射 hasattr getattr delattr setattr 优点:事先定义好接口,接口只有在被完成后才能真正执行,这实现了即插即用,这其实是一种“后期绑定”,即先定义好接口, 然后是再去实现具体的功能 print(hasattr(p, 'age')) # True 是否有属性 判断 print(getattr(p, 'name', '没有找到该参数')) # get属性值 print(getattr(p, 'name1', 'False')) # False setattr(p,

Python动态导入模块

如果导入的模块不存在,Python解释器会报 ImportError 错误: >>> import something Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named something 有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了Strin

Python 动态导入模块

动态导入模块 目录结构: zhangsandeMacBook-Air:1110 zhangsan$ tree . . ├── lib │   └── aa.py ├── test1.py lib目录下有一个aa.py文件,其中C类中有一个属性name: class C: def __init__(self): self.name = 'zhangsan' 在test1.py文件中需要动态导入aa这个模块有两种办法: 第一种: lib = __import__('lib.aa') obj = li

Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)

实现接口类的两种方式 方式一 from abc import ABCMeta from abc import abstractmethod class BaseMessage(metaclass=ABCMeta): @abstractmethod def send(self,subject,body,to,name): pass 方式二 class BaseMessage(object): def send(self, subject, body, to, name): raise NotImp

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

相关内容: __import__ importlib 动态导入的使用场景 首发时间:2018-02-23 16:06 __import__: 功能: 是一个函数,可以在需要的时候动态导入模块 使用: __import__(模块名) 但对于多级目录,只会导入第一级 目录结构: mo1=__import__("des") mo2=__import__("child.child") mo3=__import__("child") print(mo1,m

Python随心记--反射、动态导入模块

hasatttr(object,name) #检测对象中是否存在name属性getattr(object,name,delault = Null)setattr(object,x,True)delattr(object,x) #删除属性 class BlackMedium: feture = 'Ugly' def __init__(self,name,addr): self.name = name self.addr = addr def sell_hourse(self): print('[%

Python30 动态导入模块/断言

动态导入模块 方式1(解释器调用) 根据当前目录结构进行动态导入模块设置 #在A1.py中 from code1 import aa #使用该方式就可以导入aa这个模块 #在A1.py中 modname = 'aa' from code1 import modname #如果通过导入字符串的方式,来导入模块就会报错,因为modname = 'aa',只是一个字符串形式,不是一个模块 #在A1.py中 mod1 = __import__('code1') #当前只导入了code1这个路径 mod2

python26 封装 多态 常用的内置函数 `__str__` `__del__` 反射 动态导入模块

今日内容: 1. 封装 2.多态 3. 常用的内置函数 `__str__ `__del__` 4.反射 5.动态导入模块 #1. 封装 ##1.1 什么是封装 ?(what) 对外部隐藏内部的属性,以及实现细节  , 给外部提供使用的接口 注意:封装有隐藏的意思,但不是单纯的隐藏 1.2学习封装的目的. 就是为了能够限制外界对内部数据的访问 1.3python中属性的权限分为两种 1.公开的 ?           没有任何限制 谁都能访问 2.私有的 ?          只有当前类本身能够访