python - 有什么方法可以在 Python 中对变量 id/符号进行字符串化?

标签 python

我想知道是否有可能在 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/

相关文章:

python - 如何获取元素在列表中出现的次数 Python

python - 如何在 python 脚本中覆盖 CTRL+Y?

python 日志记录 - 消息未显示在 child 中

python - Spark XML - 使用 Excel 中的 XML

Python在shell中运行多行命令

python - 错误,删除 EPD 后使用已弃用的类 PySimpleApp

python - 从给定列表和给定索引中提取列表

python - 920 HTTP 响应

python - 如何为 Python 文档字符串更改 Emacs 的字体?

python - 上下文无关文法区分整数和浮点常量