On 2013-01-21 16:52, Steve Simmons wrote:
Mike,

Thanks for your response - I was puzzled by one part of it though...

     On 21/01/2013 15:14, Mike C. Fletcher wrote:
    That's because you've just discarded the object you created

I (mis?)understood from the ctypes documentation that '>>> initResult =
c_short(0)' would result in the creation of a ctypes 'short' called
initResult and that this object would be mutable.  On that basis, I
expected the following statement '>>> initResult = initScanLib( ... )'
would assign the result of the call to initResult.

So, I can understand that I am not using the correct approach but I
don't understand how I discarded the object I created.  Can you clarify
please?

This:

initResult = initScanLib( ... )

will make initResult refer to whatever initScanLib(...) returned, just
as this:

initResult = c_short(0)

will make initResult refer to whatever c_short(0) returned.

What you were doing was this:

1. You created a c_short object and bound initResult to it.

2. You called a function and bound initResult to its result, unbinding
the c_short object in the process.

3. There were no other references to the c_short object, therefore it could be discarded by the garbage collector.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to