我想知道是否有可能在 python 中进行字符串化 变量 id/symbol——即一个行为如下的函数:
>>> symbol = 'whatever'
>>> symbol_name(symbol)
'symbol'
现在,很容易在函数或类上执行此操作(如果它是 直接引用对象):
>>> def fn(): pass
>>> fn.func_name
'fn'
但我正在寻找一种适用于所有情况的通用方法, 即使是间接对象引用。我不知何故想到了 使用 id(var),但还没有成功。
有什么办法吗?
最佳答案
这是,我相信你可以把它变成更好的形式 =)
def symbol_name(a):
for k,v in globals().items():
if id(a)==id(v): return k
更新:正如 unbeli 所指出的,如果您:
a = []
b = a
由于 id(a)==id(b),该函数将无法显示正确的名称。
关于python - 有什么方法可以在 Python 中对变量 id/符号进行字符串化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000566/