我正在为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)
的第二个参数是0x0
还是其他?如果有可能,我该怎么做?如果没有,为什么?
答案 0 :(得分:1)
第二个参数称为default
,它存储为也称为默认的属性。
b = BitField("foo",0x0,2)
b.default # 0
答案 1 :(得分:0)
尝试使用BitField实例的.default
属性。