你不能。 *在Python language reference中讨论了详细的原因,但基本上,当您拨打printL(A_minus_B)
时Python执行的操作是将标记为A_minus_B
的值与创建的新标签xlist
恰好相同。从那时起,标签xlist
与其他标签A_minus_B
完全没有关系,事实上,标记为A_minus_B
或xlist
或任何其他名称的值与用于标记它的任何名称都没有关系。
*好了,你可以,通过使用一些深层次的“巨蟒巫术” ......你基本上要告诉Python阅片的源代码中调用printL(A_minus_B)
并提取变量从那里的名字。通常情况下,你可能不应该这样做(不是因为你是初学者,而是因为它通常表明你设计的程序是错误的),但是调试是其中一种可能适用的情况。下面是做这件事:
import inspect, pprint
def print_values(*names):
caller = inspect.stack()[1][0]
for name in names:
if name in caller.f_locals:
value = caller.f_locals[name]
elif name in caller.f_globals:
value = caller.f_globals[name]
else:
print 'no such variable: ' + name
# do whatever you want with name and value, for example:
print "****************************"
print name
print (" entries : "),len(value)
print value
print "****************************"
美中不足的是,当你调用这个函数,你必须通过它的名字你想打印的变量,而不是变量本身的。所以你会打电话print_values('A_minus_B')
,而不是print_values(A_minus_B)
。您可以传递多个名称以将它们全部打印出来,例如print_values('A_minus_B', 'C_minus_D', 'foo')
。
如果您告诉我们您所使用的语言它将帮助。 – 2011-12-17 20:20:48
对不起。这是为Python 2.7 – 2011-12-17 23:09:12
Duplicate:http://stackoverflow.com/questions/592746/how-can-you-print-a-variable-name-in-python – heltonbiker 2011-12-18 00:20:39