2015-03-04 2 views
1

Описание проблемы:аргументы Python C Extension Ключевое слово

Когда я вызываю метод, определенный следующим образом:

static PyMethodDef Parser_methods[] = { 
    {"read", (PyCFunction)Parser_read, METH_KEYWORDS, "read from input source"}, 
    {NULL, NULL, 0, NULL} 
}; 

static PyObject * 
Parser_read(Parser * const self, PyObject * unused0, PyObject * unused1) 
{ 
... 
} 

я получил:

SystemError: Bad call flags in PyCFunction_Call. METH_OLDARGS is no longer supported! 

код прекрасно работает на python2 , но сбой на Python3

ответ

1

Может быть это ошибка ...

http://bugs.python.org/issue11587

Это означает, что это вопрос питон версия. Одним из исправлений является использование METH_KEYWORDS | METH_VARARGS.

0

Parser_read должен быть

static PyObject* Parser_read(PyObject *self, PyObject *args) 
+0

Неверно, он использует ключевое слово. –

 Смежные вопросы

  • Нет связанных вопросов^_^