为了记录目的,我尝试自动捕获传递给函数内部函数的参数并将它们转换为arg : value
的字典。 我试过inspect.signature()
模块,但它仅与函数的默认输入,而不是参数传递给它如何在字典中捕捉函数的输入参数
import inspect
def my_add_func(a, b ,c=3):
sig = inspect.signature(my_add_func)
print("my_add_func args : {0}".format(sig))
return a + b + c
if __name__ == '__main__':
my_add_func(10, 2, 3)
输出提供:
(a, b, c=3)
而我想有:
{a: 10, b: 2, c:3}
我该怎么做?
按预期工作谢谢,我只是按照@Yuval Ben Ari的建议添加'apply_default()'。另外我发现''locals()'更容易使用。它适合我的情况,因为我只想在函数的开头就抓住参数。 – MCMZL
@MCMZL如果你这样做,直接在函数中检查你不需要'apply_default()',只有当你试图从外部检查一个函数时才有意思。 – MSeifert
@MCMZL我很高兴它的工作,请不要忘记[接受](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)最有帮助的答案:) – MSeifert