1 回答
TA贡献1797条经验 获得超4个赞
函数本身可以保存到变量中,然后调用:
f = sniffFunc f(a_packet) # Still works
被调用的函数对象sniffFunc
会像任何其他对象一样传递给该函数。一旦进入sniff
(实际上在代码的深处),它会获取您提供的函数对象,并通过向其传递给定的数据包来调用它:
def on_packet_received(self, pkt):
"""DEV: entry point. Will be called by sniff() for each
received packet (that passes the filters).
"""
if not pkt:
return
if isinstance(pkt, list):
for p in pkt:
DefaultSession.on_packet_received(self, p)
return
self.__count += 1
if self.store:
self.lst.append(pkt)
if self.prn:
result = self.prn(pkt) # Your function was stored in the variable self.prn <<<<<
if result is not None:
print(result)
result是你的函数返回的任何内容。你可以看到它只是打印返回值(如果有的话)。
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报