5.30 如何将变量名和变量值转为字典?¶

千言万语,不如上示例演示下效果
>>> name="wangbm"
>>> age=28
>>> gender="male"
>>>
>>> convert_vars_to_dict(name, age, gender)
{'name': 'wangbm', 'age': 28, 'gender': 'male'}
convert_vars_to_dict
是我要自己定义的这么一个函数,功能如上,代码如下。
import re
import inspect
def varname(*args):
    current_frame = inspect.currentframe()
    back_frame = current_frame.f_back
    back_frame_info = inspect.getframeinfo(back_frame)
    current_func_name = current_frame.f_code.co_name
    caller_file_path = back_frame_info[0]
    caller_line_no = back_frame_info[1]
    caller_type = back_frame_info[2]
    caller_expression = back_frame_info[3]
    keys = []
    for line in caller_expression:
        re_match = re.search(r'\b{}\((.*?)\)'.format(current_func_name), line)
        match_string = re_match.groups(1)[0]
        keys = [match.strip() for match in match_string.split(',') if match]
    return dict(zip(keys, args))
附上 :inspect 学习文档
