handling return codes from CTYPES
MRAB
python at mrabarnett.plus.com
Mon Jan 21 15:21:22 EST 2013
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.
More information about the Python-list
mailing list