有没有办法列出可选参数? python

is there a way to make a list of optional params? python

假设我有一个函数有一个/两个选项,但如果我想稍后添加更多,更多怎么办?有没有办法让它工作起来没有太多麻烦?

def json_response_message(status, message, option=(), option1=()):
    data = {
        'status': status,
        'message': message,
    }
    data.update(option)
    data.update(option1)
    return JsonResponse(data)

所以我可以像这样使用它:

json_response_message(True, 'Hello', {'option': option})

尝试以下操作:

def json_response_message(status, message, **kwargs):
    data = {
        'status': status,
        'message': message,
    }

    data.update(kwargs)
    return JsonResponse(data)

json_response_message(True, 'Hello', option=option, option1=option1) # etc...

或者,或者

json_response_message(True, 'Hello', **{"option": option, "option1": option1})

希望对您有所帮助。

您可以考虑使用变长参数*args。它们在函数参数中以 * 为前缀。试试这个例子。

def json_response_message(status, message, *options):
data = {
    'status': status,
    'message': message,
}
for option in options:
    data.update(option)
return JsonResponse(data)

然后您可以使用任意数量的参数调用您的函数。 json_response_message(True, 'Hello', {'option': option}, {'option1': option})

请参阅 http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/ 以获得进一步的简化说明。