You need to enable JavaScript to run this app. 如何实现变量名与其存储的字符串值互换并生成新变量
优惠活动
大模型
产品
解决方案
定价
更多

如何实现变量名与其存储的字符串值互换并生成新变量

实现方法(Python环境)

以下方案均基于你给出的示例场景my_variable = 'my_new_variable',最终得到my_new_variable = 'my_variable':

1. 全局作用域实现

直接操作全局命名空间字典globals()即可:

my_variable = 'my_new_variable'
# 执行互换
globals()[my_variable] = 'my_variable'

# 验证
print(my_new_variable) # 输出结果:my_variable

2. 函数局部作用域实现

如果变量定义在函数内部,替换为操作局部命名空间字典locals():

def test_swap():
    my_variable = 'my_new_variable'
    locals()[my_variable] = 'my_variable'
    print(my_new_variable) # 输出结果:my_variable

test_swap()

3. 通用无硬编码实现

如果不想手动写入原变量名的字符串,可以先遍历命名空间匹配得到原变量名再执行互换:

my_variable = 'my_new_variable'
# 自动匹配获取原变量名
old_name = next(k for k, v in globals().items() if v == 'my_new_variable')
globals()[my_variable] = old_name

# 验证
print(my_new_variable) # 输出结果:my_variable

注意:如果原变量存储的字符串不是合法Python标识符(包含空格、特殊字符、以数字开头等),生成的新变量无法直接通过变量名访问,仅能通过globals()/locals()字典读取对应值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 01:45:07