如何打印变量名?



是否可以在python中打印一个保存为变量的变量?这是一个例子,因为它是相当难以描述:

Variable1 = 1
Variable2 = Variable1
Variable3 = Variable2
print(Variable3)

我该如何使它在打印Variable3时输出为:

Variable2

1

打印括号中不包含Variable2

您可以为此定义自己的函数:

import re
import inspect

def varname(p):
for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
nam = re.search(r'bvarnames*(s*([A-Za-z_][A-Za-z0-9_]*)s*)', line)
if nam:
return nam.group(1)
if __name__ == '__main__':
Variable1 = 1
Variable2 = Variable1
Variable3 = Variable2
print(varname(Variable3))

您可以通过搜索局部变量(或全局变量)的id()来获得与Variable3(包括'Variable3')引用相同数据的所有变量的名称:

print([k for k,v in locals().items() if id(v)==id(Variable3)])
['Variable1', 'Variable2', 'Variable3']

最新更新