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

如何通过变量名字符串获取对应变量值?Python技术问询

通过变量名字符串获取对应变量值的方法

我明白你的问题啦——你把变量名存在了字符串里,但直接打印这个字符串只会输出变量名文本,而不是它对应的实际值。先回顾下你的代码和输出:

你的代码

yday_mnth = '201905'
b = yday_mnth
x = 'yday_mnth'
print(b)
print(x)

输出结果

201905
yday_mnth

这里b直接赋值了yday_mnth的引用,所以能拿到值;但x只是存了变量名的字符串,Python不会自动把它解析成变量引用。下面给你几种解决方法:


方法1:使用globals()全局命名空间字典

globals()会返回当前全局作用域的所有变量组成的字典,键是变量名(字符串),值是变量对应的值。你可以通过字符串键来取值:

yday_mnth = '201905'
x = 'yday_mnth'
print(globals()[x])  # 输出:201905

方法2:使用locals()局部命名空间字典

如果你的变量是在局部作用域(比如函数内部)定义的,就用locals(),用法和globals()一致:

def get_var_value():
    yday_mnth = '201905'
    x = 'yday_mnth'
    print(locals()[x])  # 输出:201905

get_var_value()

更推荐的做法:用字典管理变量

虽然上面的方法能解决问题,但直接操作命名空间字典会降低代码可读性,还容易引发意外错误。如果需要通过字符串来索引多个变量,更建议用字典来统一管理:

# 把相关变量存在字典里
date_dict = {
    'yday_mnth': '201905',
    'another_date': '202401'
}
x = 'yday_mnth'
print(date_dict[x])  # 输出:201905

这种方式逻辑清晰,也符合Python的最佳实践。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:49:15