Я хочу сделать что-то вдоль линийИмя переменной передается в качестве аргумента
static PyObject* printArgs(PyObject* self, PyObject* args) {
PyObject * oarg1 = NULL;
PyArg_ParseTuple(args,"O",&oarg1);
return -- magic --
}
Такое, что вызов modulename.printArgs (а) возвращает «а».
Возможно ли это? Лучшее, что я мог придумать, - это просмотр locals() для переменной, указывающей на то, что я получил в args, но если есть более одного имени для значения, я мог бы получить неправильное имя.
Я не против получения нулевого указателя, если он анонимный. Я добавляю интерпретатор к приложению C++, и я хочу идентифицировать объекты по их именам в интерпретаторе python. –
Тогда вы можете просто предположить, что каждый параметр является анонимным (потому что в некотором роде он есть) и сразу возвращает нулевой указатель. :-) – mornfall
В зависимости от того, какие объекты вы хотите идентифицировать, их регистрация (через конструкторы, например) звучит как гораздо лучший план. – mornfall