How to implement a union (C data type) in Python?
chads
lamote1 at netscape.net
Mon Mar 8 13:24:53 EST 2004
Miki Tebeka wrote:
> Hello Chad,
>
>> How would one implement a union (C data type) in Python, given this
>> simple example?
>>
>> union {
>> struct {
>> int size;
>> float time;
>> } var1;
>> struct {
>> char initial;
>> float time;
>> } var2;
>> };
>
> You can't, but you're thinking in C and not in Python ;-)
>
> Python variables are dynamically typed, this means
> a = 100
> a = "Hello"
> a = lambda x: x * 2
>
> Is OK in Python.
>
> You should use classes where you use structs in C
> class var1:
> def __init__(self, size, time):
> self.size = size
> self.time = time
> class var2:
> def __init__(self, initial, time):
> self.initial = initial
> self.time = time
>
> And to check the type of variable you can use `isinstance' function.
> I don't recommend using the above, have each function return one type of
> object only. Unions were created to same memory, Python is the wrong
> language for such optimizations. If you need to save memory using unions
> I suggest coding in C and using SWIG/Boost.Python to export the C module
> to Python.
>
> HTH.
> Miki
Thanks
More information about the Python-list
mailing list