Я столкнулся с ситуацией с чистым модулем python и Cython. Подводя итог, как я могу принять и управлять объектом python в модуле C? Моя часть python будет выглядеть следующим образом.
#!/usr/bin/env python
import os, sys
from c_hello import *
class Hello:
busyHello = _sayhello_obj
class Man:
def __init__(self, name):
self.name = name
def getName(self):
return self.name
h = Hello()
h.busyHello( Man("John") )
в C, необходимо решить две вещи. во-первых, как я могу получить объект? во-вторых, как я могу вызвать метод из объекта?
static PyObject *
_sayhello_obj(PyObject *self, PyObject *args)
{
PyObject *obj;
// How can I fill obj?
char s[1024];
// How can I fill s, from obj.getName() ?
printf("Hello, %s\n", s);
return Py_None;
}