Bonjour,
maintenant j'aimerais au lieu d'utiliser des variables comme des int (post precedent)que j'appelle depuis C, creer un hash en python. Depuis C je désire appeler les éléments du Hash(bibliothèque).
.py
dictionnaire = {"rrg" : 25, 854 : "TZSZHSRTZ", "gdf" : 47};

class Dico():

def PythonGet(self) :
return dictionnaire
print "dictionnaire", dictionnaire
Mon hash contient aussi des objets (on peut imaginer : dictionnaire = {"rrg" : 25, 854 : "T", "objet1" : objet2}; )


Mon .c reste sensiblement le même que celui posté dans le message d'avant, a ceci prés que j'ai mis des char* au lieu de int pour la déclaration des variables.
Tout ceci ne fonctionnait pas

Mon idée est alors d'utiliser
int PyArg_ParseTupleAndKeywords(PyObject *args, PyObject *kw, const char *format, char *keywords[], ...)¶
.
a la place de
int PyArg_Parse(PyObject *args, const char *format, ...)¶
.
site officiel :
Mon problème est comment utiliser cette fonction: Il n'a pas ou peu d'exemples sur le net.


.c

#include <stdio.h>
#include <C:\Python25\include\Python.h>

PyObject *mymod, *func, *retval;


int CallPythonGet(void){
char* js;
func = PyObject_GetAttrString(mymod, "PythonGet");
retval = PyEval_CallObject(func,NULL);
PyArg_Parse(retval, "c",&js); //fonction a remplacer.
return js;
}


int main(void){
char* _result;
Py_Initialize();
mymod = PyImport_ImportModule("dictionnarie");

_result = CallPythonGet();
printf ("Python Get_Global_Var:%u\n",_result);


Py_Finalize();
printf("Press touch to continue");
getchar();
return 0;
}
Si toutefois, l'un de vous a déjà rencontré ce problèmes. Merci