PyClass_New Python3 porting

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
init-0
User
Beiträge: 38
Registriert: Samstag 22. Januar 2011, 18:46

Ich versuche grade pydasm ( http://libdasm.googlecode.com/svn/trunk/pydasm/pydasm.c ) für Python3 umzuschreiben.
Leider finde ich keine Möglichkeit create_class in Zeile 253 bei PyClass_New umzuschreiben.

Code: Alles auswählen

PyObject *create_class(char *class_name)
{
    PyObject *pClass;
    PyObject *pClassDict = PyDict_New();
    PyObject *pClassName = PyUnicode_FromString(class_name);//PyUnicode_FromString(class_name); FIXME:
    
    pClass = PyClass_New(NULL, pClassDict, pClassName);
    if(!check_object(pClass))
        return NULL;
        
    Py_DECREF(pClassDict);
    Py_DECREF(pClassName);
    
    return pClass;
}
http://python3porting.com/cextensions.html sagt, dass man anstatt von Klassen PyTypeObject benutzen sollen. Kann man mit PyTypeObject auch PyObject_SetAttrString benutzen?
Gibt es auch eine bessere Variante als PyTypeObject? Ich kann mir nicht genau vorstellen wie ich in einer c funktion eine struct definieren soll, die global verfügbar ist
Antworten