Python C API中的静态变量

Toj*_*oji 4 python python-c-api

如何公开这样的"静态"变量

class MyClass:
    X = 1
    Y = 2
Run Code Online (Sandbox Code Playgroud)

通过C API?PyTypeObject上看起来像它的唯一变量是tp_members,但我在PyMemberDef中看不到任何标志,表明该成员应该是每个类,而不是每个实例.

为了进一步澄清,因为它可能会改变答案,我试图将C枚举暴露给Python,以便枚举

enum MyFlags {
    Alpha = 0,
    Beta = 1
};
Run Code Online (Sandbox Code Playgroud)

可以在Python中访问:

module.MyFlags.Alpha
module.MyFlags.Beta
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 9

只需将它们放在类型的tp_dict中,例如使用PyDict_SetItemString.