在C中的python类中指定静态变量
发布时间:2020-12-16 07:27:35 所属栏目:百科 来源:网络整理
导读:如何在C Python C中在python类中指定静态方法或变量? 在PyTypeObject结构中,tp_getset,tp_methods,tp_members似乎都假定了该类的一个实例. 非常感谢, 抢. 解决方法 通过将METH_STATIC或METH_CLASS添加到PyMethodDef结构的ml_flags字段,可以在tp_methods中定
如何在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. http://docs.python.org/c-api/typeobj.html#tp_dict 计算类属性需要描述符类,与Python完全相同.然后,应该像其他类属性一样将描述符的实例添加到tp_dict. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |