py怎么print正在运行的变量名

查看 125|回复 14
作者:摘星哥哥   
有多个变量名 我想让在运行这个变量的时候print他这个正在运行变量的名字而不是变量的内容
就例如我的多线程变量有a b c
我想他正在运行a变量打印a变量 而不是a变量的内容
以此类推

变量, 正在运行

以后。   
使用inspect模块试试
關鍵詞   
def print_running_variable_name(var):
    frame = None
    for frame in reversed(inspect.stack()):
        if var in frame.frame.f_globals or var in frame.frame.f_locals:
            break
    if frame is not None:
        frame_locals = frame.frame.f_locals
        frame_globals = frame.frame.f_globals
        for name, value in frame_locals.items():
            if value is var:
                print(‘Local variable name:‘, name)
                return
        for name, value in frame_globals.items():
            if value is var:
                print(‘Global variable name:‘, name)
                return
    print(‘Variable name not found.‘)
# 示例变量
x = 10
y = 20
# 使用示例
print_running_variable_name(x)  # 输出: Global variable name: x
print_running_variable_name(y)  # 输出: Global variable name: y
print_running_variable_name(10)  # 输出: Variable name not found.
關鍵詞   
问下gpt吧
關鍵詞   
在Python中,变量名是在运行时与变量值进行关联的标识符。要获取正在运行的变量名,可以使用 globals() 或 locals() 函数来检索当前命名空间中的变量,并与变量的值进行比较。以下是一个示例代码,演示如何打印正在运行的变量名:
python
Copy code
def print_running_variable_name(var):
    frame = None
    for frame in reversed(inspect.stack()):
        if var in frame.frame.f_globals or var in frame.frame.f_locals:
            break
    if frame is not None:
        frame_locals = frame.frame.f_locals
        frame_globals = frame.frame.f_globals
        for name, value in frame_locals.items():
            if value is var:
                print(‘Local variable name:‘, name)
                return
        for name, value in frame_globals.items():
            if value is var:
                print(‘Global variable name:‘, name)
                return
    print(‘Variable name not found.‘)
# 示例变量
x = 10
y = 20
# 使用示例
print_running_variable_name(x)  # 输出: Global variable name: x
print_running_variable_name(y)  # 输出: Global variable name: y
print_running_variable_name(10)  # 输出: Variable name no
空空道人゜じ   
那你完全可以在函数的开头直接打印这个变量名啊
鱼你相望   
在变量前输出不就好了,后面输出不就是变量内容
摘星哥哥
OP
  
直接输出就是变量的内容了
昔年丶往事   
if __name__ == ‘__main__‘:
    main()。参照这个 __name__
摘星哥哥
OP
  
对的
您需要登录后才可以回帖 登录 | 立即注册

返回顶部