Bonjour,
Voila mon problème, je vais essayer d'etre clair.
Dans un fichier .pyl je dois Appeler une fonction MaFunc(c_double, liste_chainée)
j'ai donc fait ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
class cell(Structure):
    pass
cell._fields_=[("entier", c_double),
                  ("next", POINTER(cell))]
malib.mafuncC.argtype=[c_double, POINTER(cell)]
malib.mafuncC.restype=c_double
def MaFunc(Entier, ????(ma liste chainée)
  return malib.maFunC(Entier, liste chainée)
Donc finalement mon probleme est que que je ne sais pas comment lui passer une liste chainée (en gros completer les ???), par exemple est ce que ca comme appel ca marchera :
MaFunc(1.0, [1,2]) ????
parce que c'est ca le but de cette fonction de lui passer une liste chainée comme ctype
du coté du C:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct cell{
    double entier;
    struct cell *next;
} cell;
double maFuncC(double Entier, cell *cell)
De ce coté la est ce bon aussi ???


En gros je voudrais faire un appel en Python MaFunc(2.0,[1.,2.,3.,7.])
qui prend comme parametre un double et une liste . Est ce que je m y prends bien ou y'a-t-il plus simple
J'ai fait quelques test c'est plus compliqué que je ne le pensais. Car si je cree comme ctype une liste chainée je suis obligé de l initialiser
Donc je remet a jour ma question: je veux faire en python MaFunc(2.0,[1.,2.,3.,7.]) ou le second argument est une liste de taille variable, comment je dois faire avec les ctypes pour qu'en C je recupere bien une liste
Pareil si j'ai besoin de MaFunc(2.0,[[a,b],[c,d]]) comment je fais pour le ctypes merci beaucoup
Merci d'avance de vos reponses