编程语言
首页 > 编程语言> > python – 将函数参数打包到字典中 – 与** kwargs相对

python – 将函数参数打包到字典中 – 与** kwargs相对

作者:互联网

我正在尝试做与** 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()使用变量进行dict.例如:

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,arguments,argument-passing
来源: https://codeday.me/bug/20190528/1171091.html