浅析Python struct模块 - Go语言中文社区

浅析Python struct模块


相信对C语言有一定了解的人,一定知道struct结构体在C语言中的作用,它定义了一种结构,里面包含不同类型的数据类型(int,char,bool等等),有了Struct就可以很方便地对某一结构对象进行处理。

最近笔者在学习Python网络编程这个部分,需要写socket通信代码,竟然也遇到了struct这个模块的使用,查了好多资料才明白struct模块是怎么回事。

数据在网络通信中是以二进制流(binary data)的形式进行传输的。如果传递的数据是int、char等类型,就需要有一种机制将这些特定的结构体类型打包成二进制流的字符串然后再网络传输,而接收端也应该可以通过某种机制还原出原来的结构体数据。

python中的struct模块就提供了这样的机制,该模块的主要作用就是对python基本类型值与用python字符串格式表示的C struct类型间的转化。

我的解释可能不是那么标准,可以看看下方视频,听知名技术专家李刚老师对struct模块和python数据类型的详细解析,