我正在尝试做一些与 **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/