You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何动态引用已导入模块的文件名访问其内部属性?

实现方案

该需求可以实现,你可以使用Python标准库importlib提供的动态导入能力完成,同时还能解决你现有写法中重复导入foo被覆盖的问题。

示例代码

# 导入标准库的动态导入方法
from importlib import import_module

# 把需要加载的模块名存入列表
target_modules = ["file1", "file2", "file3"]

for mod_name in target_modules:
    # 动态导入对应模块,得到模块对象
    current_mod = import_module(mod_name)
    # 直接访问模块内的foo字典即可
    current_foo = current_mod.foo
    # 此处编写你需要对current_foo执行的逻辑
    ...

补充说明

  • 如果三个文件存放在子包下,只需修改target_modules内的模块路径即可,比如存放在common包下时,模块名写为"common.file1"格式
  • 动态导入得到的模块对象和直接用import file1得到的对象完全一致,模块内的所有属性、方法、类都可以正常访问
  • 你当前的写法存在逻辑缺陷:连续三次from xxx import foo会让foo变量被后导入的值覆盖,最终只能获取到file3中的foo,无法访问前两个文件的foo内容

内容的提问来源于stack exchange,提问作者Cuttles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:45:01