python 提取函数名/变量名(或将函数名/变量名转换为字符串)

目的:传入函数/变量,得到相应的函数名/变量名
代码:

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)

测试代码:

python 提取函数名/变量名(或将函数名/变量名转换为字符串)_第1张图片
重点:
仔细观看上面测试代码,自定义的varname只能提取变量名称,函数体的名称其实提取不到。
若实在需要函数名称,可在函数定义最后返回自己的函数名的字符串。

原帖子链接:https://stackoverflow.com/questions/592746/how-can-you-print-a-variable-name-in-python

你可能感兴趣的:(小问题)