目的:传入函数/变量,得到相应的函数名/变量名
代码:
import inspect, 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)
测试代码:
重点:
仔细观看上面测试代码,自定义的varname只能提取变量名称,函数体的名称其实提取不到。
若实在需要函数名称,可在函数定义最后返回自己的函数名的字符串。
原帖子链接:/questions/592746/how-can-you-print-a-variable-name-in-python