Запретить автоматическое преобразование типов в функциях обратного вызова ctypes

При оборачивании функций Python типом CFUNCTYPE я обнаружил, что типы без указателей автоматически преобразуются, как если бы их значение был вызван атрибут.

Как я могу подавить это автоматическое преобразование?

from ctypes import *

funcspec = CFUNCTYPE(c_int, c_int, POINTER(c_int))

@funcspec
def callback(the_int, the_int_p):
    print(vars())
    return 3

print(callback(c_int(1), byref(c_int(2))))

Что дает ( python3 cfunctype_type_conversion.py ):

{'the_int': 1, 'the_int_p': <__main__.LP_c_int object at 0x2671830>}
3

Я бы хотел:

{'the_int': c_int(1), 'the_int_p': <__main__.LP_c_int object at 0x2671830>}
c_int(3)

6
задан Matt Joiner 8 June 2011 в 01:43
поделиться