首页 > 解决方案 > 如何在 Python 中打印变量的名称?

问题描述

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

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

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

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

标签: pythonstringpython-3.xfunction

解决方案


您所要求的内容是不可能的,因为输入参数在输入您的函数之前已被评估。换句话说,'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'

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


推荐阅读