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

在函数中用变量调用模块.items()方法报错AttributeError的解决方法

问题原因

你写的ref.VAR1是直接去模块里找名为VAR1的属性,但你传入的VAR1是字符串"RefA",模块里不存在VAR1这个属性,只有RefA字典,这才是报错的核心根源。

修复方案

要通过字符串动态获取模块中的属性,用Python内置的getattr()函数即可,修改后的完整代码如下:

import reference_A_Z as ref
import argparse

# 定义获取键值对的函数
def function(VAR1):
    # 根据字符串VAR1获取模块中对应的字典
    target_dict = getattr(ref, VAR1)
    for key, value in target_dict.items():
        try:
            # 替换成你实际要执行的逻辑,原代码foo=foo1会触发NameError
            foo = value[key]
        except KeyError:
            print("KeyError")

# 解析命令行参数
parser = argparse.ArgumentParser()
parser.add_argument('-i', dest='input')
args = parser.parse_args('-i RefA'.split())

# 执行函数
function(args.input)

注意:原代码里的foo = foo1是无效代码,foo1未定义,需要根据你的实际需求修改这部分逻辑,比如改成获取当前键对应的值或者其他业务操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:30:24