最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個函數(shù)如何知道變量存在?

這個函數(shù)如何知道變量存在?

PHP
呼啦一陣風(fēng) 2023-11-09 21:19:37
我有一些代碼:from scapy.all import *def sniffFunc(pkt):    print(pkt.show())    quit()myFilter = 'tcp and src host 192.168.1.2 and dst host 52.223.224.41'sniff(filter=myFilter, prn=sniffFunc)它從我的主機嗅探單個數(shù)據(jù)包到 twitch 服務(wù)器并顯示該數(shù)據(jù)包的信息。sniffFunc() 如何知道變量“pkt”是什么以及該變量的值?我知道名稱可以是程序員想要的關(guān)于傳遞給函數(shù)的變量的任何名稱,但是,一旦進入函數(shù)內(nèi)部,在我看來變量“pkt”將為空,但它包含所需的值。例如,我認為人們必須做類似的事情:pkt = sniff(filter=myFilter, prn=sniffFunc(pkt))雖然這行不通,但也許它會讓我對我的思維過程有一些了解。
查看完整描述

1 回答

?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

函數(shù)本身可以保存到變量中,然后調(diào)用:

f = sniffFunc
f(a_packet)  # Still works

被調(diào)用的函數(shù)對象sniffFunc會像任何其他對象一樣傳遞給該函數(shù)。一旦進入sniff實際上在代碼的深處),它會獲取您提供的函數(shù)對象,并通過向其傳遞給定的數(shù)據(jù)包來調(diào)用它:

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是你的函數(shù)返回的任何內(nèi)容。你可以看到它只是打印返回值(如果有的話)。


查看完整回答
反對 回復(fù) 2023-11-09
  • 1 回答
  • 0 關(guān)注
  • 189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號