python函数结构体 Python结构体

Python 如何给 c 函数传递结构体参数

//test1.c# include stdio.h# include stdlib.hstruct Student

为湖州等地区用户提供了全套网页设计制作服务,及湖州网站建设行业解决方案。主营业务为成都做网站、网站设计、湖州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

{    char name[30];    float fScore[3];

};void Display(struct Student su){    printf("-----Information------\n");    printf("Name:%s",su.name);    printf("Chinese:%.2f\n",su.fScore[0]);    printf("Math:%.2f\n",su.fScore[1]);    printf("English:%.2f",su.fScore[2]);    printf("平均分数为:%.2f\n",(su.fScore[0]+su.fScore[1],su.fScore[2])/3);

}

Python中如何使用C的结构体struct求解

閟truct就可以使用结构体了:

import struct

生成一个结构体实例:

data = struct.pack( 'format_string', struct_menber_1, struct_menber_2, ... )

其中的format_string用来指定结构体的格式(指明该结构体在C中的定义),由两部分组成:

首先是一个可选的特殊字符,用来指明字节序、数据类型大小和对齐方式:

@: native order, size alignment (default)

=: native order, std. size alignment

: little-endian, std. size alignment

: big-endian, std. size alignment

!: same as

然后是指明结构体定义的部分:

The remaining chars indicate types of args and must match exactly;

these can be preceded by a decimal repeat count:

x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;

h:short; H:unsigned short; i:int; I:unsigned int;

l:long; L:unsigned long; f:float; d:double.

Special cases (preceding decimal count indicates length):

s:string (array of char); p: pascal string (with count byte).

Special case (only available in native format):

P:an integer type that is wide enough to hold a pointer.

Special case (not in native mode unless 'long long' in platform C):

q:long long; Q:unsigned long long

Whitespace between formats is ignored.

如果struct模块的函数出错,将产生struct.error异常。

python里面可以定义结构体吗

Python中没有专门定义结构体的方法,但可以使用class标记定义类来代替结构体,

其成员可以在构造函数__init__中定义,具体方法如下。

复制代码代码如下:

class item:

def __init__(self):

self.name = '' # 名称

self.size = 10 # 尺寸

self.list = [] # 列表

a = item() # 定义结构对象

a.name = 'cup'

a.size = 8

a.list.append('water')


名称栏目:python函数结构体 Python结构体
分享地址:http://myzitong.com/article/dooiodj.html