Python中如何将同一函数的多次多参数调用合并为单次调用?
实现方案
核心思路是先收集所有需要传递给func的参数组合,之后统一遍历这个参数列表调用func,这样代码里只需要写一次func的调用逻辑。
基础实现版本
def func(para1, para2, para3): # 函数原有逻辑示例 print(para1, para2, para3) # 初始化参数组合列表 args_list = [] if condition_1: # 单个参数组合加入列表 args_list.append((1, 2, 3)) else: # 批量添加多组参数 args_list.extend([ (4, 5, 6), (7, 8, 9), # 可继续添加更多参数组合 ]) # 仅需写一次func调用逻辑,统一处理所有参数 for para1, para2, para3 in args_list: func(para1, para2, para3)
简化写法(利用条件表达式)
如果追求代码简洁,可以直接用条件表达式生成参数列表,再通过参数解包调用:
def func(para1, para2, para3): print(para1, para2, para3) # 用条件表达式直接生成目标参数组合列表 args_list = [(1, 2, 3)] if condition_1 else [(4, 5, 6), (7, 8, 9)] # 统一调用func,用*args解包参数元组 for args in args_list: func(*args)
以上两种写法都能保留原代码的调用次数逻辑,同时满足“代码末尾仅出现一次func调用语句”的要求。
内容的提问来源于stack exchange,提问作者jason
相关产品推荐
相关产品推荐

