Как я могу создать статическую переменную в классе Python через API C?

Я хочу сделать эквивалент

class Foo(object):
  bar = 1

использование API Python C. Другими словами, я хочу создать класс Python, который имеет статическую переменную, с помощью C.

Как я могу сделать это?

8
задан Daniel Daranas 23 December 2009 в 13:15
поделиться

2 ответа

Нашёл! Речь идет только об установке элемента tp_dict объекта типа и заполнении добавлением записей в него для каждой из статических переменных. Следующий код на Си создает ту же статическую переменную, что и код на Python выше:

PyTypeObject type;
// ...other initialisation...
type.tp_dict = PyDict_New();
PyDict_SetItemString(type.tp_dict, "bar", PyInt_FromLong(1));
5
ответ дан 5 December 2019 в 21:19
поделиться

Вы можете передать этот исходный код в Py_CompileString с соответствующими флагами.

Если у вас уже есть класс, вы можете использовать PyObject_SetAttr.

.
2
ответ дан 5 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: