我正在使用在给定函数中具有数十个参数的API:
api.update_customer(a='', b='', c='', ..., x='', y='', z='')
调用时,我只需要更新一个或几个参数即可,例如:
api.update_customer(email='new.email@example.com')
...但是我不会事先知道需要更新哪个对象(例如电子邮件,电话号码等)。
如何围绕此调用构建包装器,以便同时传递参数名称及其新值?
def update_customer_details(key, value):
api.update_customer(key=value)
答案 0 :(得分:4)
您不需要编写包装器。只需使用关键字扩展来传递字典即可。
params = {'email': 'new.email@example.com'}
api.update_customer(**params)
答案 1 :(得分:1)
以丹尼尔·罗斯曼(Daniel Roseman)的答案为例,说明如何使用它:
def test2(x=None):
print(x)
def test(**kwarg):
test2(**kwarg)
test(x=5)
输出:5
答案 2 :(得分:0)
您可以尝试:
api.update_customer(field='my_field', value='my_value', *args, **kwrgs)