1

Python: 可能很明显,:) 无论如何,我们正在寻找?,如下:

def printname(x):
   print ?,x

>>> a = 1.3
>>> printname(a)
>>> 'a',1.3

所以一些东西而不是?代表传递参数的名称。
如果不是那么明显任何技巧或解决方案?

4

2 回答 2

2

你不可能知道这一点。对象不知道它们的名字。如果它们只是另一个对象或列表中的一个项目,它们可以有很多名称,或者根本没有。

于 2013-05-24T10:42:05.697 回答
1

这不是不可能的。您需要遍历备份堆栈帧并找到调用该函数的代码行。

对于调试来说这是一个不错的技巧,但我绝不会在实际代码中使用它

这是您的起点:

import inspect
def printname(x):
    print inspect.stack()[1][4]

a = 1.3
printname(a)
于 2013-05-24T10:59:12.913 回答