python - 将选定的参数从字典传递给函数
问题描述
给定一组签名不同的函数和一个包含每个所需参数的 (key, value) 对的字典,我想找到一种优雅的方式将字典传递给每个函数,以便每个函数都可以使用它需要的函数的参数。
def first_function(name, age):
print(name, " ", age)
def second_function(name, gender):
print(name, " ", gender)
param_dict = {'name': 'Max', 'age': 23, 'gender':'m'}
param_dict
通过指定将传递给函数second_function(**param_dict)
会引发错误,因为这两个函数都不需要所有三个参数。是否有一个优雅的解决方案,使得每个函数都“提取”它需要的参数?
解决方案
你可以简单地**kwargs
作为第三个参数传递来解决这个问题,因为它会从字典中消耗它需要的东西,其余的将继续收集在kwargs
字典中:
def first_function(name, age, **kwargs):
print(name, age)
def second_function(name, gender, **kwargs):
print(name, gender)
param_dict = {'name': 'Max', 'age': 23, 'gender':'m'}
first_function(**param_dict)
# Max 23
second_function(**param_dict)
# Max m
推荐阅读
- javascript - Updating Discord Bot Nickname
- sql-server - Aggregate by day vs aggregate by month database performance
- r - 在R中提取列值从一个日期更改为下一个日期的行
- android - Implement Compose Bottom Navigation using Fragments
- javascript - buildDependencies targets folder instead of file
- c# - Why is a Linked list's Node has next as Node type and not an int type
- r - R 长数据级别计数
- docker - 为什么不是所有来自 Docker 的消息都在 Jenkins 日志中运行?
- python - 根据一组行索引拆分数据框
- macos - Qt/Qml TextField 在 macOS 上创建 SDL 窗口时收到两次击键