如何使用;“枚举”;跨C/Python接口

如何使用;“枚举”;跨C/Python接口,python,c,types,Python,C,Types,我正在用C编写一个Python扩展,并希望像中一样使用enum enum operation {A,B,C}; void do_operation(enum operation); 但是PyArg\u ParseTuple函数只处理数字、字符串和对象 我看到的选项是:(1)只传递一个整数,这是可行的,因为这是一个小数目的操作,但感觉非常原始,或者(2)替换为一组函数 do_A() do_B() do_C() 但这也很烦人,因为我需要将这些名称放在三/四个不同的地方,它们都将采用相同的参数 有

我正在用C编写一个Python扩展,并希望像中一样使用
enum

enum operation {A,B,C};
void do_operation(enum operation);
但是
PyArg\u ParseTuple
函数只处理数字、字符串和对象

我看到的选项是:(1)只传递一个整数,这是可行的,因为这是一个小数目的操作,但感觉非常原始,或者(2)替换为一组函数

do_A()
do_B()
do_C()
但这也很烦人,因为我需要将这些名称放在三/四个不同的地方,它们都将采用相同的参数


有更好的解决方案吗?

鉴于
C
代码将与同一个包一起提供,您可以在Python代码中复制
enum
标识符的定义(或者提供一种方法,以两种语言生成相关头并导入它们)。相关:@metatoaster:好吧,我想应该行了。