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

Python如何从已导入的外部py文件中调用指定命名的文本变量

问题根因

你代码的核心逻辑错误是:

  • 生成的doc_labels列表存储的是"doc_1"、"doc_2"这类字符串形式的变量名,不是train模块的实际属性引用
  • 直接写train.doc_labels[i]时,Python会尝试查找train模块下名为doc_labels的属性,而不是把doc_labels[i]的字符串值作为属性名去获取对应内容,自然会报属性不存在的错误。
正确实现方案

方案1:用getattr()动态获取模块属性(推荐)

getattr()是Python内置函数,不需要额外导入依赖,可以传入字符串形式的属性名,直接从对象/模块中取出对应属性值,修改后的代码如下:

from documents import training as train # 导入目标文件

train_docs = []
# 可以同步生成变量名列表
doc_labels = []
for i in range(1, 14):
    attr_name = f'doc_{i}'
    doc_labels.append(attr_name)
    # 动态获取对应文本内容
    doc_content = getattr(train, attr_name)
    train_docs.append(doc_content)

方案2:一行式列表推导式简化写法

如果只需要收集所有文本内容,不需要单独存储变量名列表,可以直接简化为一行代码:

from documents import training as train

train_docs = [getattr(train, f'doc_{i}') for i in range(1,14)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:54:03