您可以检查堆栈跟踪并“解析”它。由于您知道函数的名称(在本例中为dd),因此找到调用并提取变量的名称变得相当容易。
import inspect
import re
def dd(value):
calling_frame_record = inspect.stack()[1]
frame = inspect.getframeinfo(calling_frame_record[0])
m = re.search( "dd\((.+)\)", frame.code_context[0])
if m:
print "{0} = {1}".format(m.group(1), value)
def test():
a = 4
dd(a)
test()
输出量
a = 4