[Python-Dev] [docs] undocumented argtypes magic in ctypes? (original) (raw)

Eli Bendersky eliben at gmail.com
Thu Mar 7 14:25:18 CET 2013


On Thu, Mar 7, 2013 at 3:37 AM, Thomas Heller <theller at ctypes.org> wrote:

Am 06.03.2013 18:19, schrieb Eli Bendersky:

On Wed, Mar 6, 2013 at 8:33 AM, Andrew Svetlov <andrew.svetlov at gmail.com_ _<mailto:andrew.svetlov at gmail.**com <andrew.svetlov at gmail.com>>> wrote: Looks like bug for me. ctypes seems to auto-convert arguments when argtypes is specified. This fact is documented. However, I'm not sure whether this auto-conversion is advanced enough to apply byref. Because otherwise, DIRENT is certainly not convertible to DIRENTp If argtypes specify a 'POINTER(X)' type as an argument, then ctypes automatically applies byref() if an 'X' instance is passed to the actual call. This is by design, but I'm not sure if it is documented or not. However, if argtypes is not given, this does (and of course cannot) work.

Great, thanks for confirming this, Thomas. I had the feeling it's a documentation issue (hence I sent it to the docs@ list first), because the behavior seems very deliberate and looking at the code of ctypes I did see conversions going on.

Have I missed that this is documented somewhere, or should I open a docs issue?

Eli -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130307/826417ea/attachment.html>



More information about the Python-Dev mailing list