Поддерживает ли Cython классы данных или что-то подобное? - PullRequest
1 голос
/ 23 марта 2019

Я заинтересован в передаче данных между Python и кодом Cython, чтобы данные были доступны из C и без GIL. Я думаю о достижении этого с помощью классов данных (начиная с py3.7), именованных кортежей (с хорошим определяющим синтаксисом начиная с py3.6) или типов расширения Cython (cdef classess).

К сожалению, классы данных и именованные кортежи, похоже, обрабатываются как универсальные объекты из Cython без какой-либо поддержки компиляции в C.

Можно использовать типы расширений Cython (классы cdef), но они имеют много недостатков по сравнению с классами данных. Самое главное, вы должны реализовать __init__ с шаблонным кодом для установки всех атрибутов вашего класса, верно?

1 Ответ

0 голосов
/ 24 марта 2019

Я спросил разработчиков Cython, и они открыли запрос на реализацию @dataclass для типов расширений (классы cdef): https://github.com/cython/cython/issues/2903. Так что, надеюсь, они скоро будут поддерживаться в Cython.

...