我正在尝试定义返回变量名称的函数。
>>> def function(x):
... return(str(x))
...
>>> a = 1
>>> function(a)
'1'
我想定义以下功能。我该如何定义?
>>> a = 1
>>> function(a)
a = 1
答案 0 :(得分:0)
您所要的东西是不可能的,因为输入参数在送入函数之前先经过评估。换句话说,'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'
在大多数情况下,词典就足够了。