Generating data types automatically

Torsten Bronger bronger at physik.rwth-aachen.de
Sat Mar 12 12:33:10 EST 2005


Hallöchen!

I have to generate a lot of data types (for ctypes by the way).  An
example is

ViUInt32  = u_long
ViPUInt32 = POINTER(ViUInt32)
ViAUInt32 = ViPUInt32

Therefore, I defined functions that should make my life easier:

def generate_type_dublett(visa_type, ctypes_type):
    visa_type_name = visa_type.__name__
    exec visa_type_name + "=" + ctypes_type.__name__
    exec "ViP" + visa_type_name[2:] + "=POINTER(" + visa_type_name + ")"

def generate_type_triplett(visa_type, ctypes_type):
    generate_type_dublett(visa_type, ctypes_type)
    visa_type_name = visa_type.__name__
    exec "ViA" + visa_type_name[2:] + "=" + "ViP" + visa_type_name[2:]

generate_type_triplett(ViUInt32, c_ulong)


However, this doesn't work, probably because the defined type exist
only locally within the function.

What is a better (and working) method for this task?

Thank you!

Tschö,
Torsten.

-- 
Torsten Bronger, aquisgrana, europa vetus



More information about the Python-list mailing list