【问题标题】:How can I print the name of variables in Python? [duplicate]如何在 Python 中打印变量的名称? [复制]
【发布时间】:2018-09-30 15:14:55
【问题描述】:

我正在尝试定义返回变量名称的函数。

>>> def function(x):
...     return(str(x))
... 
>>> a = 1
>>> function(a)
'1'

我想定义以下函数。如何定义?

>>> a = 1
>>> function(a)
a = 1

【问题讨论】:

  • a = 1; b = a; function(a) 的函数应该打印什么?
  • 你能解释一下为什么你需要这个来防止 XY 问题吗?
  • 我更愿意将此问题标记为 Getting the name of a variable as a string 的副本,特别是将 OP 指向 this answer: "a name is a one-way reference to an对象。”

标签: python string python-3.x function


【解决方案1】:

您所要求的内容是不可能的,因为输入参数是在输入您的函数之前进行评估的。换句话说,'a' 变量名丢失了,只有值 1 提供您的 function

如果您将变量名称作为字符串输入,则可以使用globals

a = 1

def foo(x):
    return f'{x} = {globals()[x]}'

foo('a')  # 'a = 1'

建议仅出于特定目的使用全局变量。如果变量名很重要,你可以使用字典来代替:

d = {'a': 1}

def foo(myd, x):
    return f'{x} = {myd[x]}'

foo(d, 'a')  # 'a = 1'

在大多数情况下,字典就足够了。

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2023-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多