在 Python 中,直接获取并打印某个变量的变量名不是一件直接的事情,因为变量名只是指向对象的引用,而不是对象本身的一部分。然而,可以通过检查当前作用域中的变量名与变量值的映射来实现。
以下是一个方法,使用 globals() 或 locals() 来查找变量名:
def get_variable_name(var, scope):
    names = [name for name, value in scope.items() if value is var]
    return names[0] if names else None
# 示例
my_var = 42
var_name = get_variable_name(my_var, globals())  # 或者使用 locals()
print(f"变量名: {var_name}")
 
代码说明:
-  
scope参数:- 如果变量在全局作用域,可以传递 
globals()。 - 如果变量在局部作用域,可以传递 
locals()。 
 - 如果变量在全局作用域,可以传递 
 -  
变量匹配:
- 遍历作用域中的变量名和变量值,找到值匹配的变量名。
 
 
注意事项:
- 如果多个变量指向相同的值,这种方法会返回第一个匹配的变量名。
 - 这种方法只能用于调试或特殊用途,不适合在实际应用中频繁使用,因为它依赖于作用域的搜索。
 
此外还有一些奇技淫巧,例如print(f’{a=}')再分割出变量名a。



















