当变量被称为字符串时,如何获取变量值而不是变量名? [复制]

Posted

技术标签:

【中文标题】当变量被称为字符串时,如何获取变量值而不是变量名? [复制]【英文标题】:How to get variable value and not variable name when variable is referred to as a string? [duplicate] 【发布时间】:2022-01-23 19:04:16 【问题描述】:

我知道这个问题非常琐碎,但我无法找到一个干净且简单的解决方案来解决我的问题。我想知道当变量被称为字符串时如何获取变量值而不是变量名:

VARIABLES = ['T1', 'T2']
T1 = "&AB="
T2 = "&PD="

print(VARIABLES[0])
T1

Where I actually want it to print "&AB="

我知道在上述情况下,简单的解决方案是将 VARIABLES 列表定义为 [T1, T2] 但这不是针对我的特定问题的有效解决方案。因为真正的工作示例更复杂。

我尝试了使用 global() 语句的解决方案,但这些解决方案很快就会变得非常复杂。

【问题讨论】:

像这样的问题总是被 instadownvoted 这是荒谬的 *** 需要改变文化。 OP 非常清楚地说明了他想要实现的目标。 如果你“想这样做”,你很可能是一个设计缺陷——而且是一个巨大的缺陷。不幸的是,新程序员经常会出现这种“想要”——而且网站上已经有几个很好的重复。 (这不是投反对票的理由 - 但欺骗它) 感谢 Josip 的支持。我可能被否决了,因为答案就在那里,而且我没有搜索足够的东西。无论如何,只有我身边的爱,并为回答的人投票:)! 相关问题陈述:how-do-i-create-variable-variables @PatrickArtner 没错。如果您认为问题重复,请标记该问题。这个问题表达得很好,OP清晰简洁,没有理由拒绝投票,尤其是答案。这只是对downvote功能的滥用。如果我们认为 OP 正在做一些天生有缺陷的事情,我们应该要求他描述他的意图,而不是过早地判断。他可能会故意利用这些技巧来学习一些东西。 【参考方案1】:

试试这个对你有用

VARIABLES = ['T1', 'T2']
T1 = "&AB="
T2 = "&PD="

print(globals()[(VARIABLES[0])])

【讨论】:

谢谢,不知怎的,我一开始无法让这个解决方案工作,但像这样它是完美的。【参考方案2】:

你需要的是locals():

print(locals()[VARIABLES[0]])

【讨论】:

谢谢,再简洁明了!

以上是关于当变量被称为字符串时,如何获取变量值而不是变量名? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python垃圾箱-垃圾回收

131 - 任务 05

在变量分组时,将一个变量值作为一组则称为( )分组;把某一区间的变量值作为一组则称为( )分组?

04-3 python语法入门之垃圾回收机制

PHP变量名、变量值、类型

js如何输出一个变量的值?