如何在C
Python C中在python类中指定静态方法或变量?
在PyTypeObject结构中,tp_getset,tp_methods,tp_members似乎都假定了该类的一个实例.
非常感谢,
抢.
解决方法
通过将METH_STATIC或METH_CLASS添加到PyMethodDef结构的ml_flags字段,可以在tp_methods中定义静态和类方法.这相当于@staticmethod和@classmethod装饰器.
该方法的第一个参数(通常是实例指针)对于静态方法将为NULL,对于类方法将为PyTypeObject *.
http://docs.python.org/c-api/structures.html#PyMethodDef
在调用PyType_Ready()之前(在模块初始化函数中),可以通过将tp_dict设置为具有这些属性的字典来添加类属性.或者tp_dict可以保留为NULL,在这种情况下PyType_Ready()将为您创建dict.然后可以将属性添加到该dict.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。