Я определил и enum
в заголовочном файле Cython api.pxd
:
ctypedef enum InstructionType:
default = 0
end_if = 1
end_loop = 2
backward_jump_here = 4
Я также проверил, сработало ли превращение ctypedef
в cdef
(а это не так).
И я хочу использовать значение из этого перечисления в __cinit__
методе для некоторого класса:
from api cimport Instruction, CLinVM, InstructionType
# (...) some other classes
cdef class EndIf(Noop):
def __cinit__(self):
self.type = InstructionType.end_if
И я получаю ошибку компиляции:
self.type = InstructionType.end_if
^
------------------------------------------------------------
/home/(...)/instructions.pyx:149:35: 'InstructionType' is not a constant,
В любом случаеопределить и использовать enum таким образом?