[英]Python - Pass a variable to lambda if it exists
我很好奇如何在Python中提高代码效率,我必须执行一个动作,该动作可能取决于列表的长度,也可能没有有效载荷。
现在,我正在使用if语句来确定是否存在有效负载。 有没有更好或更干净的方法来找到这个?
#If payload, execute action with it
if(len(data) > 1):
action= mec.action(data[1])
#If no payload, then just execute action
else:
action= mec.action()
return action
该代码按原样是有效的-与其优化效率,不如先尝试为清楚起见而优化。 如果代码随后成为性能热点,请考虑一下效率。
记住return
结束一个函数; 这是一个稍微干净的替代方法:
# execute with payload if exists
if(len(data) > 1):
return mec.action(data[1])
# execute without payload
# this isn't reached if len(data) > 1
return mec.action()
Python带有vararg语法,您可以直接使用它。
return mec.action(*data[1:])
(我在这里假设data[2]
开始没有意义,或者您可以使用mec.action(*data[1:2])
)
在这种情况下,只需使用如下三元运算符:
return mec.action(data[1]) if(len(data) > 1) else mec.action()
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.