Python 函数调用的值字典?

Python 函数调用的值字典?,python,Python,我正在运行一系列的实验,我不断地发现自己在重写代码,以便记录传递到函数中的参数。其主要思想是获取一个字典,其中包含函数获得的变量名称和值(包括默认值)。下面是一些我所追求的例子 def foo(a, b, c=3, d=4): pass foo(1,2) {'a': 1, 'b':2, 'c':3, 'd':4} foo(1,2,5,6) {'a': 1, 'b':2, 'c':5, 'd':6} foo(1,2,d=10) {'a': 1, 'b':2, 'c':3,

我正在运行一系列的实验,我不断地发现自己在重写代码,以便记录传递到函数中的参数。其主要思想是获取一个字典,其中包含函数获得的变量名称和值(包括默认值)。下面是一些我所追求的例子

def foo(a, b, c=3, d=4):
    pass

foo(1,2)
  {'a': 1, 'b':2, 'c':3, 'd':4}

foo(1,2,5,6)
  {'a': 1, 'b':2, 'c':5, 'd':6}

foo(1,2,d=10)
  {'a': 1, 'b':2, 'c':3, 'd':10}
我已经研究过如何使用kwargs和inspect模块,但是我无法获得指定的行为

我想你需要

def foo(a, b, c=3, d=4):
  return dict(locals())

返回{'a':a,'b':b,'c':c,'d':d}
?这肯定会给出相同的字典,但我不熟悉locals方法的源代码,返回的字典在方法之外编辑可能安全,也可能不安全。为了安全起见,我加了dict()。谢谢!这正是我想要的