python - 将函数参数打包到字典中——与 **kwargs 相反

标签 python arguments parameter-passing

我正在尝试做一些与 **kwargs 所做的相反的事情,我不确定这是否可能。但了解 Python 可能是 :-)。 我想在我的方法中明确设计所有属性(为了自动完成和易用性),我想把它们全部抓起来,比方说一本字典,然后进一步传递它们。

class Foo(object):
   def __init__(self, a=1, b=2):
      inputs = grab_function_inputs_somehow()
      self.bar(**inputs)
   
   def bar(self, *args, **kwargs):
      pass

通常的做法是将每个输入分配给一个对象参数,但我不想对所有类都这样做。我希望有一种方法可以将它包装成可以继承的方法。

最佳答案

您可以使用 locals() 创建带有变量的字典.例如:

class Foo(object):
    def __init__(self, a=1, b=2):    
        inputs = locals()
        del inputs['self'] # remove self variable
        print(inputs)

   
f = Foo() 

打印结果:

{'b': 2, 'a': 1}

关于python - 将函数参数打包到字典中——与 **kwargs 相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29273536/

相关文章:

python - 我的 Python Pascal 三角形(使用二项式系数)代码每行返回 2 项。我该如何解决?

python - 将大型 numpy 数组与自身相乘时出现奇怪的结果

python - Seaborn:如何将垂直线添加到分布图 (sns.distplot)

batch-file - 读取批处理文件中参数的每个字符

c++ - 指向方法父参数的子类方法指针 C++

r - 通过 R 中的嵌套函数传递默认参数

python - 将 unicode 转换为 datetime 正确的 strptime 格式

parsing - Julia - 指定另一个函数输入的参数

javascript - 将字符串传递给 innerHTML

c - 在 C 中将数组作为参数传递