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

Python如何获取变量名存储在另一变量中的对应变量值

Python动态获取同名变量值的实现方案

推荐方案:使用字典存储商品价格(最优实践)

这是Python处理键值映射关系的标准写法,安全易维护,完全规避动态访问变量的各类隐患。你只需要把原本单独定义的商品价格变量调整为字典结构即可:

# 用字典存储商品名称和对应价格
price_map = {
    'Lego': 40000
}
prodlist = price_map.keys() # 直接用字典的键作为商品列表,无需单独维护
tx = 1.13

product = input("What do you want to buy? [Lego], [Something]")
if product in prodlist:
    cost = price_map[product] # 直接通过商品名从字典取对应价格
    price = cost * tx
    print("Price for ", product, " is = ", price)
else:
    print("Product not found :(")

后续新增商品只需在price_map里新增键值对即可,不用同时维护变量和商品列表两处逻辑,代码更简洁。

可选方案:通过globals()动态获取全局变量(不推荐)

如果你确实需要直接访问已定义的全局变量,可以用Python内置的globals()函数,它会返回当前所有全局变量组成的字典,可直接通过变量名字符串取值:

Lego = 40000
prodlist = ['Lego']
tx = 1.13

product = input("What do you want to buy? [Lego], [Something]")
if product in prodlist:
    cost = globals()[product] # 动态获取对应全局变量的值
    price = cost * tx
    print("Price for ", product, " is = ", price)
else:
    print("Product not found :(")

该方式存在安全风险,如果用户输入你代码里其他全局变量的名称,会直接获取到对应的值,同时代码可读性差、后期维护成本高,非特殊场景不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:08