python 自动获取(打印)代码中的变量的名字字符串
方法一:
import inspect
import re
def varname(p):
for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line)
if m:
return m.group(1)
使用:
>>> dsalds_ = 3
>>> varname(dsalds_)
'dsalds_'
方法2:
def namestr(obj, namespace):
return [name for name in namespace if namespace[name] is obj]
使用:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> a = 'some var'
>>> namestr(a, globals())
['a']
这里打印的结果是一个list,意思是有多个变量与a是同一个值时,这些变量会一起打印出来,自己试试:
>>> a = 1
>>> b = a
>>> c = 1
>>> d = 1.0
>>> namestr(a, globals()) # 除了globals(),还有 locals()
['a', 'b', 'c', '_24', '_25', '_9', '_27']
你可能需要一下辅助函数:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def pv(var, var_name):
""" print 变量的名字及type、及其值 """
print("%s : %s; value: " % (var_name, type(var).__name__))
print(var)
def ps(var, var_name):
""" print 变量的名字及type、shape """
print("%s : %s; shape: " %(var_name, var.__class__.__name__))
print(np.shape(var))
使用方法:
>>> ps(raw_data, varname(raw_data))
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16763351.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现