如何使用kwargs创建主函数?实现指定子函数按需调用
Python主函数Master()实现方案
核心思路
通过可变位置参数接收需要运行的子函数,结合可变关键字参数**kwargs统一传递子函数所需的参数(比如D1),实现灵活调用指定子函数的需求。
完整代码实现
# 定义你已有的三个子函数示例 def StoreInfo(D1): print(f"执行StoreInfo,参数D1:{D1}") def GetResidual(D1): print(f"执行GetResidual,参数D1:{D1}") def FindAlternative(D1): print(f"执行FindAlternative,参数D1:{D1}") # 实现Master主函数 def Master(*funcs, **kwargs): # 遍历传入的子函数,依次调用并传递参数 for func in funcs: func(**kwargs) # 调用示例 if __name__ == "__main__": # 只运行StoreInfo和FindAlternative,传入D1参数 Master(StoreInfo, FindAlternative, D1="测试数据集") # 运行全部三个子函数 Master(StoreInfo, GetResidual, FindAlternative, D1="全量数据集")
关键说明
*funcs:捕获所有传入的子函数(支持任意数量),这些函数会被打包成元组处理。**kwargs:捕获所有关键字参数(比如D1),打包成字典后通过**kwargs解包传递给子函数。如果后续子函数新增参数,只要在调用Master时传入对应关键字参数即可兼容,无需修改Master函数。- 执行逻辑:遍历
funcs中的每个函数,逐一执行并传递参数,确保指定的子函数按要求运行。
内容的提问来源于stack exchange,提问作者AScientist1096
相关产品推荐
相关产品推荐

