【问题标题】:Python use Name of an assigned variable as a stringPython使用分配变量的名称作为字符串
【发布时间】:2022-01-25 21:26:24
【问题描述】:

我想使用分配变量的名称,而不是其中的值。
示例:

y1 = 1000

y2 = y1

目标是从 y2 中获取“y1”作为字符串,而不是 1000 的值

我试过了:

print(f"{y}")

得到1000

【问题讨论】:

  • Python 变量不是这样工作的。如果你想要'y1',你应该设置y2 = 'y1'
  • 这能回答你的问题吗? Getting the name of a variable as a string
  • 如果您的代码依赖于变量的名称,那么通常这意味着有更好的方法来做这件事。通常,如果您想将事物的名称存储为字符串,您会使用 dict() 对象。
  • 我真的不明白为什么有人会这样做。你的理由是什么?

标签: python string variable-assignment names


【解决方案1】:

我认为按照你描述的方式做你要求的事情是不可能的。

这里我们区分了变量和值。 通过这样做:y1 = 1000,您将值 1000 (int) 设置为变量 y1。 通过这样做:y2 = y1,您不仅将变量 y1 的值分配给 y2,而且还指向了 y1 保持 1000 的内存地址。

【讨论】:

  • 从 Python 3.8 (y2 = f'{y1=}'.split('=')[0]) 开始就有可能,但这样做没有意义。
  • 好的!我不知道!
  • @cesarv:这并不能使提问者的要求成为可能。这只是一种冗长而低效的y2 = 'y1' 方式。您仍然需要在 y2 = f'{y1=}'.split('=')[0] 行中硬编码 y1 名称;执行y2 = y1后无法恢复名称。
  • @user2357112supportsMonica,这使得它成为可能,但这样做没有任何意义。我想我很清楚。
  • @cesarv:发问者在执行y2 = y1 之后,想从y2 中检索字符串'y1'。你的建议没有实现。您的建议是一种尴尬且低效的y2 = 'y1' 方式。除非你已经知道你想要的输出是'y1',否则它不起作用,在这种情况下你可以写y2 = 'y1'
猜你喜欢
  • 2013-09-16
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多