如何简化给定的Python自定义函数fun1的代码?
可以简化,给你两种常用的等价简化方案:
方案1:条件表达式配合字典解包(最简洁,逻辑完全等价)
直接把分支判断放到参数解包逻辑里,省去独立的if-else代码块:
def fun1(param, value, send): fun2(**({param: value} if send else {}))
这个写法逻辑和原函数完全一致:send为真时就构造包含对应键值对的字典解包传给fun2,否则就传空字典,相当于没有传关键字参数。
方案2:提前构造参数字典(如果后续还要修改参数的话更灵活)
如果你的实际场景里可能还要追加其他参数,也可以先定义参数字典再判断赋值:
def fun1(param, value, send): kwargs = {} if send: kwargs[param] = value fun2(**kwargs)
这种写法可读性也很好,比原写法少了一个else分支,后续要加其他参数直接修改kwargs就行。
另外提个小优化:原代码里的send == True可以直接简写为send,只要你能保证send传入的是布尔值,不会有其他真值类型的干扰即可。
内容的提问来源于stack exchange,提问作者RanN
相关产品推荐
相关产品推荐

