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