繁体   English   中英

Python Lambda与Or

[英]Python Lambda with Or

阅读文档似乎这可能是不可能的,但似乎很多人已经能够将更复杂的功能击败到pythons lambda函数中。

我正在利用scapy库来创建数据包。 特别是这个问题是关于ConditionalField,它带有一个字段和一个比较函数,如果比较为真,该字段只被添加到数据包,但我需要进行2次比较。

只有一个检查的示例,这适用:

ConditionalField(XShortField("chksum",None),lambda pkt:pkt.chksumpresent==1)

我想要的是:

ConditionalField(XShortField("chksum",None),lambda pkt:pkt.chksumpresent==1 or (lamba pkt:pkt.special == 1))

这没有给出预期的结果。 有没有办法做到这一点?

lambda pkt:((pkt.chksumpresent == 1) or (pkt.special == 1))

lambda是最易读/可维护的吗? 以下是同样的表现:

def checksum_condition(pkt):
    return pkt.chksumpresent == 1 or pkt.special == 1

ConditionalField(XShortField("chksum",None), checksum_condition)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM