Python中定义(声明)结构体

本文介绍了如何在Python中通过定义类来模拟C/C++的结构体,包括创建一个类并初始化实例,展示了其与C语言中typedefstruct的相似性。通过这种方式,可以方便地在Python中处理类似结构体的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

前言

在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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值