目录
1. exec()
使用exec来执行Python导入模块的命令。
1 |
module_name = "module01" |
2. __import__()
单独使用__import__()
可以直接加载模块,但是当需要动态加载类、函数时,就需要配合getattr来实现。
实现步骤:
- 获取模块名(module_name)
- 使用
__import__(module_name)
导入Python模块 - 使用
getattr(module_name, class_name/function_name)
获取类、方法的对象
例子:
模块(module01.py)中包含一个Index类和一个echo方法。主程序(main.py)使用模块名动态调用其echo方法。
module01.py:
1 |
class Index: |
main.py:
1 |
module_name = "module01" |
此外,还可以这样调用类中的函数:
main.py:
1 |
module_name = "module01" |
参考:
3. importlib
这种方式其实是__import__()
方式的扩展。Python官方文档推荐程序式地导入模块时应该使用 import_module() 而不是__import__
。
实现动态加载的方式与第二种类似:
module01.py
1 |
class Index: |
main.py
1 |
import importlib |
(同样的这里可以配合getattr()使用)
使用importlib的一个好处就是还可以使用reload方法。在模块已经被导入的情况下,使用importlib.reload导入新的模块。
- By:threezh1.com
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论