参考了以下链接: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}