如果我有任何类型的本地/全局变量,var如何获取其名称,即字符串"var"?即对于某些虚函数或运算符,nameof()下一个代码应该可以工作:
var = 123
assert nameof(var) == "var"
Run Code Online (Sandbox Code Playgroud)
有用于.__name__获取变量保存值的函数或类型对象的名称的属性,但是是否有类似的用于获取变量本身的名称的属性?
这是否可以在不将变量包装到某个神奇对象中的情况下实现,就像某些库为了获取变量名称所做的那样?如果没有魔术包装器就无法实现,那么用于这种情况的最常见/流行的包装库是什么?
Fri*_*les 23
您可以使用包 python-varname 来执行此操作:https://github.com/pwwang/python-varname
第一次运行pip install varname。然后看下面的代码:
from varname import nameof
var = 123
name = nameof(var)
#name will be 'var'
Run Code Online (Sandbox Code Playgroud)
Sum*_*rod 20
对于 Python 3.8 及更高版本,您可以尝试这种不太漂亮的方法,但它适用于任何具有 str 方法的 python 对象:
var = 123
var_name = f'{var=}'.partition('=')[0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26603 次 |
| 最近记录: |