Какие все типы доступны в Cython? - PullRequest
3 голосов
/ 01 апреля 2019

Во время встречи на Cython оратор указал на другие типы данных, такие как cython.ssize_t. Тип ssize_t кратко упоминается в этой статье Википедии , однако он не очень хорошо объяснен. Точно так же документация Cython упоминает типы в терминах того, как типы автоматически преобразуются .

Какие все типы данных доступны в Cython и каковы их спецификации?

1 Ответ

5 голосов
/ 01 апреля 2019

У вас есть доступ к большинству типов C:

Вот эквивалент всех типов Python (если я не пропущу некоторые), взятые из книги Орейли cython book

Python bool:

  • bint (логическое кодирование на 4 бита, псевдоним для краткости)

Python int и long

  • [unsigned] char
  • [неподписанный] короткий
  • [без знака] int
  • [без знака] длинный
  • [без знака] длинный длинный

Python float

  • поплавок
  • двойной
  • длинный двойной

Python complex

  • поплавковый комплекс
  • двойной комплекс

Python bytes / str / unicode

  • символ *
  • станд :: строка

Для size_t и Py_ssite_t имейте в виду, что это псевдонимы.

Py_ssize_t определено в python.h, импортированных неявно в Cython. Он может содержать размер (в байтах) самого большого объекта, который когда-либо создавал интерпретатор Python.

Хотя size_t - это стандартный тип C89, определенный в <stddef.h>.

...