用字符串的方式读取变量名,
locals() 函数会以字典类型返回当前位置的全部局部变量。
输入
bili = 5
print(locals()['bili'])
输出
5
字符串变成同名变量名
输入
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)
if __name__ == '__main__':
haha = 42
print (varname(haha))
输出
haha