Правильность Cython - PullRequest
       10

Правильность Cython

7 голосов
/ 21 марта 2011

Всегда ли код, созданный Cython, так же корректен, как и код Python, из которого он был создан?

Это может помочь другим читателям рассмотреть использование статических объявлений типов Cython и других функций Cython (если таковые имеются), хотя меня интересует только случай создания файлов Cython путем переименования модулей Python в * .pyx.

Я забочусь только о подмножестве Python, охватываемом Cython.

1 Ответ

10 голосов
/ 21 марта 2011

Вообще-то да.Конечно, есть ошибок (многие вращаются вокруг расширения поддерживаемого подмножества Python, хотя ошибки, которые фактически делают сгенерированный код C некорректным, относительно редки), и есть несколько необходимых предостережений (хотякажется, что только один элемент в этом коротком списке отклоняется от семантики Python).

Когда вы добавляете статические типы в режиме чистого Python, существуют обстоятельства, при которых имеет значение, компилируется ли он как Cython или запускается как код Python,На ум приходят беззнаковые целые числа (пример: как упоминалось в одной из ссылок выше, -n будет переноситься, если n не подписано, а range(-n, n), следовательно, пусто), а также переполнение целого числа (Python поддерживает int s (Clong с) до long с (целые числа с абритарией точности)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...