如何在 C 中为 Python 设置静态 class 变量?

How do I set a static class variable in C for Python?

根据Python文档,在C中为Python实现一个class大致可以分为三个步骤:

  1. 定义对象(数据实现)
  2. 定义类型(行为包装器)
  3. 定义具体的行为,并将它们设置到相应的 tp_xx 个插槽中

对于new函数,init函数,实例成员,属性,甚至dealloc,都可以找到一个slotPyTypeObject 声明中,如 tp_newtp_inittp_memberstp_methodstp_dealloc。但是没有像tp_statics这样的插槽。

我应该在哪里声明静态变量,我应该在哪里设置它们?我搜索了互联网,但一无所获。谁能给我一些线索?

也许你应该看看 this question

Python中没有static关键字,class属性存储在class.__dict__中。

@avram 提到了一个解决我问题的答案。
但是如果大家发现你的静态属性修改后没有更新,可以查看PyType_Modified函数。