How would I write this C code in Python?

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Fri Jul 6 13:39:43 EDT 2007


On Fri, 06 Jul 2007 17:31:50 +0000, DeveloperX wrote:

> I am trying to figure out how to rewrite the following chunk of code
> in Python:
> 
> C source
> [code]
> typedef struct PF
> {
>   int flags;
>   long user;
>   char*filename;
>   unsigned char buffer[MAXBUFFERSIZE];
> } PF;
> 
> typedef BLOCK
> {
>   PF * packdata;
> } BLOCK;
> 
> BLOCK* blocks;
> [/code]
> 
> My first idea was to create a class for PF and a class for BLOCK, but
> I got lost somewhere along the lines. :\
> 
> Python Attempt: Please note that since I can't type TABs online
> easily, I am using the @ character to represent TABs in the following
> Python code.
> [code]
> class PF:
> @def __init__(self):
> @@self.flags, self.user = 0, 0
> @@self.filename = ''
> @@self.buffer = []
> 
> class BLOCK:
> @def __init__(self):
> @@self.packdata = []
> 
> blocks = []
> [/code]
> 
> Any Python Gurus out there that can help me?

At a first glance it looks okay but unless we know what you are going to
do with these data structures it's hard to tell if it is really the best
"translation".

`PF.buffer` might be better a string or an `array.array`.  And is `BLOCK`
really just a structure with *one* member?  Looks a bit odd IMHO.

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list