📅  最后修改于: 2023-12-03 14:46:12.209000             🧑  作者: Mango
在Python中,我们经常需要从一个字符串中动态地导入模块或对象。Python提供了3种方法来从字符串导入模块或对象。
import()函数是Python的内置函数,它使用字符串名称导入模块。下面是一个示例:
module_name = "os"
module = __import__(module_name)
在上面的代码中,我们将模块名存储在字符串变量module_name
中,然后使用__import__()
函数动态地导入模块。
importlib模块是一个高级工具,可以用于从字符串中动态导入模块。下面是一个使用importlib导入模块的示例:
import importlib
module_name = "os"
module = importlib.import_module(module_name)
在上面的代码中,我们使用import_module()
函数从字符串中导入模块,并将其存储在变量module
中。
我们还可以使用Python的内置函数exec()
来执行字符串中的Python代码。使用exec()
函数,我们可以从字符串中导入模块或对象:
module_name = "os"
exec("import " + module_name)
module = eval(module_name)
在上面的代码中,我们使用exec()
函数来执行字符串"import os"
,然后使用eval()
函数将字符串"os"
转换为实际的Python对象。
虽然使用exec()
函数是一种更简单的方法,但它不够安全,容易受到恶意攻击。因此,我们建议使用方法1或方法2来从字符串中动态导入模块或对象。
以上就是Python从字符串名称导入的3种方法。根据具体的场景,我们可以选择使用其中的一种方法。