参考了以下链接:https://stackoverflow.com/questions/592746/how-can-you-print-a-variable-name-in-python
代码如下
def yield_dict(*p): import inspect, re for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]: m1 = re.search(r'yield_dict((.*?))', line) m2 = m1.groups(1)[0] # m3 = re.search(r'varnames*(s*([A-Za-z_][A-Za-z0-9_]*,?s*)+)', line) m3 = [i.strip() for i in m2.split(',') if i] m3 = [i for i in m3 if i] assert len(m3) == len(p), 'I melt' return dict(zip(m3, p))
a = 1; b= 2
x = yield_dict(a, b)
print(x)
输出
{'a': 1, 'b': 2}