私は scapy を使用しており、scapy だけでなく python にも関連する質問があります。変数をscapyフィールド名として使用しようとしています。これは、私がやろうとしていることを説明するコードの抜粋です(機能していません):
class Test(Packet):
name = "Test23"
def __init__(self,foo=None):
self.foo=foo
fields_desc = [
BitField(self.foo, 0x0, 4),
BitField("bar", 0x3, 4)
]
問題は、 fields_desc がクラス変数ではなくクラス属性であるという事実によるものだと思います。では、どうすれば自分の望むものにたどり着けるでしょうか?(実行時/クラスの初期化時に self.foo の名前を設定しますか?)
どんな助けにも感謝します。敬具
編集:カウンターを追加するだけで十分です。私は試した:
class Counter:
count = 0
def __init__(self):
self.__class__.count += 1
foo = [
"lala"+str(count)
]
print foo
a=Counter()
a.count
print a.foo
b=Counter()
b.count
print b.foo
しかし、うまくいかないようです。どういうわけか私は道に迷っています。