Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 18, 2009 10:01:50

qwer
От:
Зарегистрирован: 2009-03-30
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

переменные в .so модуле

Как добавить переменные-константы в компилируемый С-модуль ?
Функции декларируются через Py_InitModule, а по переменными не могу найти информации.



Офлайн

#2 Дек. 18, 2009 11:19:54

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

переменные в .so модуле

Смотрите, как другие делают:

	m = Py_InitModule3(MODNAME,
posix_methods,
posix__doc__);
// ...
Py_INCREF(PyExc_OSError);
PyModule_AddObject(m, "error", PyExc_OSError);
Идея ясна?



Офлайн

#3 Дек. 18, 2009 11:49:33

qwer
От:
Зарегистрирован: 2009-03-30
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

переменные в .so модуле

спасибо, нашел PyModule_AddIntConstant



Офлайн

#4 Дек. 18, 2009 12:23:04

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

переменные в .so модуле

На самом деле вот полный список:

PyAPI_FUNC(int) PyModule_AddObject(PyObject *, const char *, PyObject *);
PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long);
PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *);
#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c)
#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c)
Макросы появились начиная с Python 2.6



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version