python杂记——动态加载模块和类

本文介绍了Python中动态加载模块的三种主要方法:__import__()、importlib.import_module()和exec函数。其中,importlib模块提供了import_module()用于导入模块,import_module()返回指定的模块,而__import__()返回顶级包或模块。此外,importlib还提供了reload()函数用于重新加载已导入的模块。通过示例代码展示了这些方法的用法。
摘要由CSDN通过智能技术生成

python中动态加载模块主要有这几种方法:使用系统函数__import__();使用imp模块, 在3.4版本后弃用了,使用importlib代替;使用importlib模块;使用exec函数。而加载类和方法需要在加载模块后从模块中获取。下面分别介绍一下这几种方法。

import

使用__import__函数不需要额外引入其他包。直接上代码

importlib

importlib.import_module(name, package=None)
导入一个模块。参数 name 指定了以绝对或相对导入方式导入什么模块 (比如要么像这样 pkg.mod 或者这样 …mod)。如果参数 name 使用相对导入的方式来指定,那么那个参数 packages 必须设置为那个包名,作为解析这个包的锚点 (比如 import_module(’…mod’, ‘pkg.subpkg’) 将会导入 pkg.mod)。

import_module和__import__这两个函数之间最重要的区别是 import_module() 返回指定的包或模块(例如 pkg.mod),而 import() 返回顶级包或模块(例如 pkg)。

importlib.reload(module)
importlib还可以重新加载之前已经导入的module。参数为一个模块对象,在reload之前已经成功导入了。更详细的信息从官方文档了解:https://docs.python.org/3.7/library/importlib.html#importlib.reload

exec

直接看代码吧。

测试代码:

#import imp
import importlib

def test_import():
	module_name = "class_define"
	my_module = __import__(module_name)
	print
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值