Код: Выделить всё
cdef struct Internals:
size_t x
size_t y
bint x_is_percent
bint y_is_percent
cdef class Offset:
# Internal struct
cdef Internals _internals
...
Код: Выделить всё
cdef class Offset:
def __cinit__(self, object x, object y, object _parent=None):
self._internals.x, self._internals.y = 0, 0
self._internals.x_is_percent, self._internals.y_is_percent = False, False
...
Но из другого класса, такого как _Absolute, который определен чуть ниже Offset:
Код: Выделить всё
cdef class _Absolute:
def __cinit__(self, Offset offset):
# Internal attributes
self._offset = offset
cpdef object _x_getter(self):
cdef Internals internals = self._offset._internals
...
Я нашел одно решение, которое исправило это; обнародование _internals:
Код: Выделить всё
cdef class Offset:
# Internal struct
cdef public Internals _internals
Подробнее здесь: https://stackoverflow.com/questions/798 ... to-another
Мобильная версия