Python 中模块的动态导入与递归重载
在 Python 编程中,我们常常会遇到需要动态导入模块以及递归重载模块的需求。下面将详细介绍如何实现这些功能。
1. 字符串形式名称导入模块
在 Python 里, import 或 from 语句中的模块名通常是固定的变量名。但有时程序在运行时会接收到以字符串形式表示的要导入的模块名,比如用户在 GUI 中选择模块名或者解析 XML 文档时。然而,不能直接使用 import 语句来加载以字符串形式给出名称的模块,因为 Python 期望的是变量名,而非字符串或表达式。
例如,以下代码会报错:
>>> import 'string'
File "<stdin>", line 1
import "string"
^
SyntaxError: invalid syntax
简单地将字符串赋值给变量也不行:
x = 'string'
import x
这里 Python 会尝试导入 x.py 文件,而不是 string 模块。
1.1 执行包含代码的字符串
为了绕过这些限制,可以构建一个 Python 代码字符串形式的
超级会员免费看
订阅专栏 解锁全文
43

被折叠的 条评论
为什么被折叠?



