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

如何在Python中基于变量值创建动态命名的变量?

在Python中创建动态命名的变量

如果你需要基于现有变量YEAR的值创建后缀匹配的动态变量,有几种可行的方法,以下是具体实现:

1. 使用全局命名空间函数globals()

通过globals()可以直接在全局命名空间中创建动态变量:

YEAR = 2022
# 构造变量名并赋值
globals()[f"Sales_Report_{YEAR}"] = "2022年度销售报告数据"

# 直接调用生成的变量
print(Sales_Report_2022)

如果是在局部作用域(比如函数内部),可以尝试用locals(),但Python对局部命名空间有优化,部分场景下locals()的修改不会生效,因此全局场景优先用globals()。

2. 用字典存储(推荐方案)

动态变量容易导致命名混乱、难以维护,更推荐用字典统一管理这类动态命名的数据:

YEAR = 2022
sales_reports = {}
# 以动态字符串作为字典键
sales_reports[f"Sales_Report_{YEAR}"] = "2022年度销售报告详情"

# 通过键名访问对应数据
print(sales_reports["Sales_Report_2022"])

这种方式更清晰,方便后续遍历、修改和维护,还能避免污染全局/局部命名空间。

3. 使用exec函数(不推荐)

虽然可以通过执行字符串代码创建动态变量,但这种方式存在安全风险(若YEAR来自不可信输入,可能注入恶意代码),且可读性差:

YEAR = 2022
exec(f"Sales_Report_{YEAR} = '2022年度销售报告'")
print(Sales_Report_2022)

除非特殊场景,否则不建议使用该方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:42:23