用c(++)扩展时的@staticmethod

时间:2012-10-12 18:27:25

标签: c++ python c extend

创建一个可在Python中使用的类非常简单: http://code.activestate.com/recipes/54352-defining-python-class-methods-in-c/

但是如何使方法静态?

1 个答案:

答案 0 :(得分:1)

使用PyMethodDef中的METH_STATIC标记。该方法将作为第一个参数而不是类型的实例传递NULL。

static PyMethodDef FooMethods[] = 
{
    {"__init__", Foo_init, METH_VARARGS, 
     "doc string"},
    {"doSomething", Foo_doSomething, METH_VARARGS | METH_STATIC,
     "doc string"},
    {NULL},
};