如何将动态生成的参数传递给函数?

时间:2017-09-18 12:58:21

标签: python python-3.x function

我有这个功能:

def do_something(arguments_list):
    user = User(name = argument_list['name'],
                age = argument_list['age'],
                ...
                sex = argument_list['sex'])

argument_list(字典)并不总是具有相同的键。例如,有时它看起来像这样:

arguments_list = {'name': 'Zara', 'age': 7, 'sex': 'Male'} 

但它也可能是:

arguments_list = {'name': 'Zara'} 

如何动态地将参数传递给函数(在本例中是User类的构造函数)取决于字典中的键?

2 个答案:

答案 0 :(得分:3)

这将采用任意数量的关键字参数并将其传递给User

def do_something(**kwargs):
    user = User(**kwargs)

如果您对参数有更多了解,也可以这样做(在这种情况下,您很可能希望do_something默认值与User默认值相同):

def do_something(name=None, age=None, sex=None):
    user = User(name=name, age=age, sex=sex)

如果有需要澄清,请告诉我。

您可以在此处获得有关*args**kwargs的更多信息: https://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/

答案 1 :(得分:-2)

>>> def do_something(**arguments_list):
    name = arguments_list['name']


>>> do_something(name="name")