2010-11-02 5 views
0

J'emballe un module C avec SWIG pour Python. Est-il possible de transformer toutes les listes/tuples Python dont les membres sont tous du même type (même type d'objet Swig) en C arrays?Python SWIG arrays

Répondre

2

Feuille de données. Ce que vous cherchez le plus, c'est un typemap "in", qui mappe les types Python aux types C. La déclaration ressemble à ceci:

% typemap (en) { /* code C pour convertir l'objet tuple Python tableau C */ }

A l'intérieur du code typemap vous pouvez utiliser la variable d'entrée de $ à référencez le PyObject * à convertir et affectez votre tableau C converti à $ 1.

http://docs.python.org/c-api/ contient des informations sur l'API Python/C, que vous aurez besoin de déballer le tuple pour obtenir les éléments et les convertir en C.

http://www.swig.org/Doc1.3/Typemaps.html a la documentation SWIG pour typemaps.

La documentation peut être difficile à comprendre au premier abord, alors jetez un oeil à quelques exemples de typemaps dans/share. carrays.i dans ce répertoire pourrait également servir de bon point de départ.