2017-03-02 5 views

Antwort

0

Wenn ich Ihre Frage richtig verstehe, könnten namedtuples verwendet werden. Hier ist ein Beispiel. Hier

from collections import namedtuple 
v1 = namedtuple("a1", "f1 f2"); 
var1 = v1(1, 2); 
v2 = namedtuple("a2", "v1 f3"); 
var2 = (var1, 3); 

ist die Ausgabe:

>>> print(var2) 
(a1(f1=1, f2=2), 3) 
1

Es scheint nicht builtin Weg, um structs in structs zu packen, aber Sie können es manuell tun. packen Sie die erste Struktur in binäre Daten, dann in die zweite Struktur, die binären Daten packen mit dem s Format Charakter:

s= struct.Struct('hbB') 
t1= struct.Struct('h{}s'.format(s.size)) 

buffer= t1.pack(1, s.pack(2,3,4)) 

Und es auszupacken:

loaded_t1= t1.unpack(buffer) 
loaded_s= s.unpack(loaded_t1[1]) 
Verwandte Themen