Оборачивая функции Python с типом CFUNCTYPE
, я обнаружил, что типы без указателей автоматически преобразуются, как если бы был вызван их атрибут value
.
Как я могу подавить это автоматическое преобразование?
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
I 'мне нравится:
{'the_int': c_int(1), 'the_int_p': <__main__.LP_c_int object at 0x2671830>}
c_int(3)