Python如何根据字符串变量动态导入另一文件中的对应变量
Python动态导入模块中指定名称变量的实现方案
方案1:导入模块后通过getattr取值(最简便,无需修改原文件)
不需要调整FeatureBook.py的原有代码,直接在当前脚本按以下方式实现:
# 先导入完整的FeatureBook模块 import FeatureBook myAnimal = "horse" # 从模块中按名称获取对应的字典变量 target_dict = getattr(FeatureBook, myAnimal)
如果需要处理变量名不存在的异常,可以给getattr加默认返回值避免报错:
# 找不到对应变量时返回None target_dict = getattr(FeatureBook, myAnimal, None)
方案2:使用importlib实现完全动态导入
适用于模块名也需要动态指定的更复杂场景,同样不需要修改原文件:
from importlib import import_module myAnimal = "horse" # 先动态导入模块,再取值 feature_book = import_module("FeatureBook") target_dict = getattr(feature_book, myAnimal)
内容的提问来源于stack exchange,提问作者Brian Ward
相关产品推荐
相关产品推荐

