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

Python中通过字典定义变量名后如何将对应变量作为函数返回值

问题根源

  • 返回值写法语法错误,Python返回多个值需要用逗号分隔
  • 函数内部通过vars()动态生成的变量无法直接作为局部变量访问,Python预编译函数时会提前确定局部变量列表,动态新增的变量不在列表内,因此封装成函数后无法正常访问

优化实现

不需要新增额外的if/elif判断,直接新增一个结果字典存储读取到的参数即可,同时兼容后续新增配置项,修改后的代码如下:

def read_env_inputs(envFilename):
    env_dict = {'File Title': 'filename', 
                'Number of Objects': 'Ns', 
                'Object Size': 'sd'}
    # 结果字典存储所有读取到的参数
    result = {}
    with open(envFilename) as f:
        lines = f.readlines()
        for line in lines:
            line = line.split(':', 1) # 加1避免value里包含冒号时拆分错误
            if line[0] in env_dict:
                var_name = env_dict[line[0]]
                value_part = line[1].split('#')[0].strip()
                if line[0] == 'File Title':
                    result[var_name] = value_part
                else:
                    value_list = value_part.split(',')
                    if len(value_list) == 1:
                        result[var_name] = float(value_part)
                    else:
                        result[var_name] = list(map(float, value_list))
    # 两种返回方式选其一即可
    # 方式1:直接返回字典,调用时通过key访问参数,后续新增配置不需要修改返回逻辑
    # return result
    # 方式2:返回多变量,调用时可以直接接多个变量名
    return result['filename'], result['Ns'], result['sd']

调用示例

如果使用方式1返回字典:

params = read_env_inputs("你的文件路径.txt")
print(params['filename'])
print(params['Ns'])
print(params['sd'])

如果使用方式2返回多变量:

filename, Ns, sd = read_env_inputs("你的文件路径.txt")
# 直接使用变量即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:04