Passing custom keyword arguments to a function
本问题已经有最佳答案,请猛点这里访问。
我有一个程序有一个
1 2 | table_name = 'example1' update_database(table_name, column1='...', column3='...') |
但另一次可能是:
1 2 | table_name = 'example2' update_database(table_name, column5='...', column2='...') |
因此,函数调用需要混合使用常规参数和关键字参数。我可以访问的关键字参数名作为列表,这样我就可以按照我喜欢的任何旧方式对其进行格式化,但我不确定这种行为在Python中是否可行。
有人知道这是否可行吗?
更新:
值得注意的是,
您可以在原始函数中使用未定义数量的关键字参数,例如:
(对于关键字参数,您有一个简单的字典而不是列表)
1 2 3 | def update_database(tname, **columns): for key, value in columns.items(): # do something with key-value pairs |
更新:
所以我想,这就是我们在评论部分所说的,对吗?
1 2 3 4 5 6 7 | # Create dictionaries with keys as keywords and values as argument values kwargs0 = {'arg0': 0, 'arg1': 2, 'arg2': 5} kwargs1 = {'arg99': 1, 'arg13': None, 'arg0': 7} # Call the function and UNPACK the dictionaries update_database('db_name', **kwargs0) update_database('db_name', **kwargs1) |