C API curses
curses предоставляет небольшой интерфейс на C для модулей расширения. Пользователи должны включить заголовочный файл py_curses.h (который не включается по умолчанию в Python.h) и вызвать import_curses(), обычно в составе функции инициализации модуля, чтобы заполнить PyCurses_API.
Предупреждение
Ни C API, ни модуль curses на чистом Python не совместимы с подинтерпретаторами.
-
import_curses() -
Импортирует C API curses. Для вызова макроса точка с запятой не требуется.
В случае успеха заполняет указатель
PyCurses_API.В случае сбоя устанавливает для
PyCurses_APIзначение NULL и устанавливает исключение. Вызывающий код должен проверить наличие ошибки с помощьюPyErr_Occurred():import_curses(); // semi-colon is optional but recommended if (PyErr_Occurred()) { /* cleanup */ }
-
void **PyCurses_API -
Динамически выделенный объект, содержащий C API curses. Эта переменная доступна только после успешного выполнения
import_curses.PyCurses_API[0]соответствуетPyCursesWindow_Type.PyCurses_API[1],PyCurses_API[2]иPyCurses_API[3]— указатели на функции-предикаты типаint (*)(void).При вызове эти предикаты возвращают информацию о том, были ли вызваны соответственно
curses.setupterm(),curses.initscr()иcurses.start_color().См. также вспомогательные макросы
PyCursesSetupTermCalled,PyCursesInitialisedиPyCursesInitialisedColor.Примечание
Количество элементов в этой структуре может меняться. Используйте
PyCurses_API_pointers, чтобы проверить, доступны ли новые поля.
-
PyCurses_API_pointers -
Количество доступных полей (
4) вPyCurses_API. Это число увеличивается при добавлении новых полей.
-
PyTypeObject PyCursesWindow_Type -
Динамический тип, соответствующий
curses.window.
-
int PyCursesWindow_Check(PyObject *op) -
Возвращает true, если op является экземпляром
curses.window, и false в противном случае.
Следующие макросы являются вспомогательными и раскрываются в операторы C. В частности, их можно использовать только как macro; или macro, но не как macro() или macro();.
-
PyCursesSetupTermCalled -
Макрос проверяет, был ли вызван
curses.setupterm().Раскрытие макроса примерно эквивалентно:
{ typedef int (*predicate_t)(void); predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1]; if (!was_setupterm_called()) { return NULL; } }
-
PyCursesInitialised -
Макрос проверяет, был ли вызван
curses.initscr().Раскрытие макроса примерно эквивалентно:
{ typedef int (*predicate_t)(void); predicate_t was_initscr_called = (predicate_t)PyCurses_API[2]; if (!was_initscr_called()) { return NULL; } }
-
PyCursesInitialisedColor -
Макрос проверяет, был ли вызван
curses.start_color().Раскрытие макроса примерно эквивалентно:
{ typedef int (*predicate_t)(void); predicate_t was_start_color_called = (predicate_t)PyCurses_API[3]; if (!was_start_color_called()) { return NULL; } }
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/curses.html