наследование Cython - PullRequest
       14

наследование Cython

5 голосов
/ 04 октября 2011

У меня есть A.pxd (только с объявлением функций) и A.pyx, который содержит только класс A со всем телом функции.

Чем у меня есть B, который наследует от A,

и для B у меня есть B.pxd с некоторыми функциями

B.pyx

class Bclass(A):
    #all the funcions body

Теперь я хочу узнать, как B.pyx ринизировать A как имя типа?

что я делаю:

B.pyx

cimport A
import A
from A import Aclass
cdef Bclass(Aclass):
   #body

но он говорит мне: А это не имя типа

Если я делаю это только в одном file.pyx, он работает без проблем, но при работе с files.pxd не работает.

1 Ответ

7 голосов
/ 05 октября 2011

Используйте

from A cimport Aclass
cdef class Bclass(Aclass):
    # ...

или

cimport A
cdef class Bclass(A.Aclass):
    # ...

Обратите внимание, что Aclass должен быть cdef 'классом подачи, Cython типы расширения не могут наследуется от классов Python.

...