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

Python函数如何根据传入参数选择匹配已定义的对应变量

实现方案

你不需要额外新建字典或其他存储结构,直接通过作用域内置字典按变量名规则取值,即可复用已定义的现有变量。

注意:你给出的示例代码里存在笔误:nun2 = 48应为num2 = 48,修正后完整可运行代码如下:

num1 = 61
num2 = 48
num3 = 27

char1 = "a"
char2 = "b"
char3 = "c"

color1 = "red"
color2 = "blue"
color3 = "green"

def func(inputnumber):
    num = globals()[f"num{inputnumber}"]
    char = globals()[f"char{inputnumber}"]
    color = globals()[f"color{inputnumber}"]
    return [num, char, color]

测试调用结果:

  • 传入1时,返回[61, 'a', 'red']
  • 传入2时,返回[48, 'b', 'blue']
  • 传入3时,返回[27, 'c', 'green']

补充说明

  • globals()会返回当前全局作用域的所有变量组成的字典,key为变量名字符串,value为变量对应的值,直接按拼接好的变量名key取值即可,不会产生额外的变量存储开销。
  • 如果你的这几组变量定义在某个外层函数的局部作用域而非全局,把globals()替换为locals()即可实现相同效果。
  • 建议在函数内增加参数合法性判断,比如校验传入值是否在1~3的整数范围内,避免传入非法值触发KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 20:03:39