0

我正在为 scapy 编写一个插件,但遇到了一个问题。我不得不稍微修改原始的 scapy 代码(每个类都继承自对象)修改后的代码可以在这里找到:http: //pastebin.com/pjcL1KJv

我写的代码如下:

class Foo():
   array=[ BitField("foo",0x0,2),
           BitField("foo1",0x0,2),
           BitField("bar",0x0,2),
           BitField("blub",None,2)
 ]
def returnArr(a):  
      for i in a.array:
           print type(i.default)


if __name__ == "__main__":
    a=Foo()
    a.blub=0x23
    returnArr(a)

输出:

<类型'int'>

<类型'int'>

<类型'int'>

<类型'NoneType'>

我的问题:是否可以检测第二个参数是BitField("foo",0x0,2)is0x0还是其他?如果有可能,我会怎么做?如果不是,为什么?

4

2 回答 2

1

第二个参数被称为default,它被存储为一个也称为默认的属性。

b = BitField("foo",0x0,2)
b.default   # 0
于 2011-07-14T12:18:45.603 回答
0

尝试.defaultBitField 实例的属性。

于 2011-07-14T12:19:29.503 回答