【问题标题】:Dictionary of values from a function call? [duplicate]来自函数调用的值字典? [复制]
【发布时间】:2018-03-07 23:14:00
【问题描述】:

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

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 和检查模块,但我无法获得指定的行为。

【问题讨论】:

  • return {'a':a,'b':b,'c':c,'d':d}?

标签: python


【解决方案1】:

我认为你需要

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

【讨论】:

  • 那肯定会给出相同的字典,但我不熟悉 locals 方法的源代码,并且返回的字典对于在方法外编辑可能安全也可能不安全。所以我添加了 dict() 是为了更安全。
  • 谢谢!这正是我想要的
猜你喜欢
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2015-04-06
  • 2011-03-20
相关资源
最近更新 更多