Scapy BitField и тип () вопрос - PullRequest
0 голосов
/ 14 июля 2011

Я пишу аддон для 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 или что-то еще? Если это возможно, как бы я это сделал? Если нет, то почему?

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Второй параметр называется default, и он сохраняется как атрибут, также называемый по умолчанию.

b = BitField("foo",0x0,2)
b.default   # 0
0 голосов
/ 14 июля 2011

Попробуйте .default атрибут для экземпляров BitField.

...