首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python struct在struct中打包一个struct?

如何使用python struct在struct中打包一个struct?
EN

Stack Overflow用户
提问于 2017-03-02 20:51:35
回答 2查看 1.8K关注 0票数 4

如何在struct python中打包给定的struct t1

我看到这里给出了许多示例来打包像:pack('hhl', 1, 2, 3)这样的值。

而是如何在struct python示例中打包c类型的struct t1

代码语言:javascript
复制
struct s {
    int16_t x;
    int8_t  y;
    uint8_t z;
};
struct t1 {
    int16_t  x;
    struct s y;
};
EN

回答 2

Stack Overflow用户

发布于 2017-03-02 21:18:03

似乎没有内置的方法可以将结构打包到结构中,但您可以手动完成。将第一个结构打包为二进制数据,然后使用s格式字符将该二进制数据打包为第二个结构:

代码语言:javascript
复制
s= struct.Struct('hbB')
t1= struct.Struct('h{}s'.format(s.size))

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

然后解开它:

代码语言:javascript
复制
loaded_t1= t1.unpack(buffer)
loaded_s= s.unpack(loaded_t1[1])
票数 4
EN

Stack Overflow用户

发布于 2017-03-02 21:02:14

如果我没理解错你的问题,可能会被命名为元组。下面是一个例子。

代码语言:javascript
复制
from collections import namedtuple
v1 = namedtuple("a1", "f1 f2");
var1 = v1(1, 2);
v2 = namedtuple("a2", "v1 f3");
var2 = (var1, 3);

下面是输出:

代码语言:javascript
复制
>>> print(var2)
(a1(f1=1, f2=2), 3)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42556035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档