On 10/04/2010 11:41 PM, Antoine Pitrou wrote:
Well, it should work, but you have to call PyType_Ready() to fill in
the NULL fields with default values (for those where it's necessary).
Does it solve it for you?
Yes, thank you! Although I do not understand which fields I have to
provide. I want an object that behaves like a function: it should be
callable and have a __dict__, but it should not be subclass of object -
so now new instances of the object's type should be allowed to create
and no subclasses, either.
Right now I have this minimal struct:
static PyTypeObject StartResponse_Type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /* ob_size */
"start_response", /* tp_name */
sizeof(StartResponse), /* tp_basicsize */
0, /* tp_itemsize */
(destructor)PyObject_FREE, /* tp_dealloc */
0, 0, 0, 0, 0, 0, 0, 0, 0, /* tp_print, tp_{get,set}attr, stuff */
start_response /* tp_call */
};
I'm not sure about the `PyObject_HEAD_INIT` argument, but passing NULL
to it made `dir(obj)` crash. So does setting `GenericGetAttr` as
`tp_getattr`.
--
http://mail.python.org/mailman/listinfo/python-list