The docs for Python C API描述了定义新类型的模式:
typedef struct {
PyObject_HEAD
PyObject *first; /* first name */
PyObject *last; /* last name */
int number;
} Noddy;
...
然后可以添加init
等方法。
我的问题是 - 在结构中定义自定义字段有什么意义,为什么不在init
中定义它们,就像在Python中一样,使用self
上的PyObject_SetAttr函数调用?
答案 0 :(得分:3)
thing->foo
比PyObject_GetAttrString(thing, "foo")
更容易。class
语句之前以及这些语句的执行方式。