Python:尾部除法或斜杠符号表示什么?

问题描述 投票:2回答:2

我是python的新手,我试图理解尾随斜杠在语言中意味着什么。具体来说,我正在使用Scapy库,我正在尝试解密Scapy的inject.py源文件中的get_rsn_information方法:

def get_rsn_information(self, essid):
rsnInfo = None
sendp(
    RadioTap()/
    Dot11(addr1=self.bssid, addr2=self.source_mac, addr3=self.bssid, SC=self.__fixSC__(), subtype=4)/
    Dot11ProbeReq()/
    Dot11Elt(ID=0, info=essid)/
    Dot11Elt(ID=1, info='\x82\x84\x0b\x16\x24\x30\x48\x6c')/
    Dot11Elt(ID=50, info='\x0c\x12\x18\x60'),
    iface=self.interface,
    verbose=False
)
<...snip...>

当我看到一行如下所示:

RadioTap()/

尾随斜线表示什么?

python scapy
2个回答
4
投票

RadioTapDot11等是scapy.packet.Packet的例子。它的除法运算是overloaded来堆栈数据包层。

即语法上这正是它看起来像一个除法运算符

#/usr/lib/python2.7/site-packages/scapy/packet.py
# source code like below:
class Packet(six.with_metaclass(Packet_metaclass, BasePacket,
                                _CanvasDumpExtended)):
...
    def __div__(self, other):
        if isinstance(other, Packet):
            cloneA = self.copy()
            cloneB = other.copy()
            cloneA.add_payload(cloneB)
            return cloneA
        elif isinstance(other, (bytes, str)):
            return self / conf.raw_layer(load=other)
        else:
            return other.__rdiv__(self)
...


0
投票

sendp()是一个有三个参数/输入的函数

第一个输入是

RadioTap()/Dot11()/Dot11ProbeReq()/Dot11Elt()/Dot11Elt()/Dot11Elt()

这正是它所说的:

RadioTap() divided by Dot11() divided by....etc.

你可以假设,因为sendp(之后的开括号没有关闭,并且在,iface之前的逗号之前没有中断

另外两个输入是ifaceverbose

© www.soinside.com 2019 - 2024. All rights reserved.