文章目录

      • 前言
      • 实现

前言

在Python中并无像C/C++那样的结构体类型,但是由于Python是用C编写而来的,很多东西可以互通。
Python是有struct模块,但并非是用于处理一般结构体的,并且使用起来也比较麻烦。

实现

我们可以使用Class类来实现一个在C/C++中呈现的结构体,也可以实现C/C++中typedef struct {}的方法。

# 首先定义一个类,要有__init__
class SN:
    def __init__(self):
        self.data = ""
        self.datalen = ""
        self.datatype = ""

# 开始初始化结构体
a = SN()
a.data = "233333"
a.datalen = len(a.data)
a.datatype = type(a.data)

print(
    f"a.data: {a.data}\n"
    f"a.datalen: {a.datalen}\n"
    f"a.datatype: {a.datatype}\n"
)

这样定义完一个类之后,已经是相当于typedef struct
如果你不理解为什么,那么我用C的写法给你写一遍你就明白了。

typedef struct {
    char *data;
    int   datalen;
    int   datatype;
} SN;

struct SN *a = (SN *)malloc(sizeof(SN));
a->data = "233333";
a->datalen = strlen(a->data);
a->datatype = 1;

更多推荐

Python中定义(声明)结构体