Python SWIG массивы - PullRequest
       16

Python SWIG массивы

0 голосов
/ 02 ноября 2010

Я обертываю модуль C с помощью SWIG для Python. Есть ли способ превратить все списки / кортежи Python, члены которых имеют одинаковый тип (один и тот же тип объекта Swig) в массивы C?

1 Ответ

2 голосов
/ 20 мая 2011

Typemaps.Скорее всего, вы ищете "in" карту типов, которая отображает типы Python на C-типы.Объявление выглядит примерно так:

% typemap (in) {/ * код C для преобразования объекта кортежа Python в массив C * /}

Внутри кода карты типов вы можете использовать переменную $вход для ссылки на PyObject * для преобразования и присвоения преобразованному массиву C значения $ 1.

http://docs.python.org/c-api/ содержит информацию об API Python / C, которую вам необходимо распаковать, чтобы получить кортежэлементы и преобразовать их в C.

http://www.swig.org/Doc1.3/Typemaps.html имеет документацию SWIG для карт типов.

Поначалу документация может быть трудной для понимания, поэтому посмотрите на некоторый примерраскладки в / поделиться.carrays.i в этом каталоге также может послужить хорошей отправной точкой.

...