Создайте экземпляр класса Cython в другой ячейке с помощью Jupyter Notebook - PullRequest
0 голосов
/ 12 июля 2020

Я использую Jupyter Notebook для написания некоторых кодов Cython.

Первая ячейка просто загружает расширение cython.

%load_ext cython

Во второй ячейке я написал класс расширения игрушки :

cdef class foo:
    cdef int a
    def __cinit__(self):
        self.a=<int>2.5
    cdef int get_a(self):
        return self.a

В следующей ячейке я попытался создать экземпляр класса foo с помощью:

%%cython
cdef foo example=foo()
print(example.a)
print(example.get_a())

Но получил ошибку компиляции:

Error compiling Cython file:
------------------------------------------------------------
...
cdef foo example=foo()
    ^
------------------------------------------------------------

/root/.cache/ipython/cython/_cython_magic_7489a6430bf0f355c7876ec2389a1b8e.pyx:1:5: 'foo' is not a type identifier

Error compiling Cython file:
------------------------------------------------------------
...
cdef foo example=foo()
            ^
------------------------------------------------------------

/root/.cache/ipython/cython/_cython_magic_7489a6430bf0f355c7876ec2389a1b8e.pyx:1:17: undeclared name not builtin: foo

Как я могу создать экземпляр класса c -signatured foo в новой ячейке?

...