sagen, dass ich die folgenden typedef struct
in meiner Header-Datei muß typedef example.h
:Wie Zeiger verwenden Struktur in Cython Verlängerungs-Art
typedef struct A A;
ich Tring bin eine Cython Verlängerungs-Art mit einem Zeiger auf A
als Klasse zu machen Variable in test.pyx
, und dann rufe ich eine Funktion zur Initialisierung f
auf einem Verweis auf A
:
cdef class Test:
cdef A* a
def __cinit__(self):
self.a = a
f(&a)
...
Wenn ich kompilieren `test.pyx ich mit den folgenden Kompilierungsfehlern am Ende:
Error compiling Cython file:
------------------------------------------------------------
...
cdef class Test:
cdef A* a
def __cinit__(self):
self.a = a
^
------------------------------------------------------------
test.pyx: undeclared name not builtin: a
Error compiling Cython file:
------------------------------------------------------------
...
cdef class Test:
cdef A* a
def __cinit__(self):
self.a = a
^
------------------------------------------------------------
test.pyx: Cannot convert Python object to 'A *'
Offenbar ist es nicht zu erkennen, das Objekt a
, und es es als ein Python-Objekt interpretiert. Wie kann ich das beheben?
Wenn das alle cython Definitionen, die Sie haben, ich glaube, Sie cython Dokumentation lesen sollten und studiere die Beispiele ein wenig. –
Danke Herr Hilfreiche. – Alex