我有这个功能:
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类的构造函数)取决于字典中的键?
答案 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")