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

Python中是否支持将字符串转换为对应名称的变量进行引用?

字符串转对应变量引用的实现方案

完全可以实现,根据你要获取的变量所在作用域,直接用Python内置的接口就能完成转换,不需要额外安装第三方模块:

  • 局部作用域变量:调用内置函数locals(),它会返回当前局部作用域内「变量名:变量值」的映射字典,直接按字符串键名取值即可
  • 全局作用域变量:调用内置函数globals(),用法和locals()一致,返回全局作用域的变量映射字典

对应你的示例代码,转换逻辑可以直接写成列表推导式:

a = b = c = 0
my_list = ["a", "b", "c"]

# 完成转换
my_list = [locals()[var_name] for var_name in my_list]

运行后得到的my_list和直接写[a, b, c]的引用效果完全一致。

重要提示:这种动态查找变量的写法可维护性很差,很容易因为作用域变动抛出键不存在的错误。常规业务场景下更推荐你一开始就用字典统一管理同组变量,比如直接定义var_dict = {"a":0, "b":0, "c":0},后续需要取值直接按键名索引即可,比动态检索作用域的方案稳定安全得多。
如果你要获取的是类/实例对象的属性,优先用内置函数getattr(对象, 属性名字符串)实现,这是官方推荐的标准写法,比扫作用域的方案可控性高很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:48:18