我正在包装一个遗留的C库。有几个头文件包含数千个宏常量,如:
#define FOO 1
#define BAR 2
#define BAZ 3
我希望Python中的用户能够指定字符串"FOO"
,它将在包装的C函数中作为1
执行,例如mycmod.wrapped_function("FOO")
目前,我的库正在启动时用python解析这些头文件,并创建一个dict,如:
values = {"FOO": 1, "BAR": 2, "BAZ": 3}
这样,在python中,用户可以:
mycmod.wrapped_function(values['FOO'])
调用一个包装的C函数
这不是很好,因为我必须让头文件的解析器忽略注释,而且我还必须硬编码所有要解析到Python库中的头文件;如果有人添加了一个新的头文件,他们必须记住将其添加到解析器中
有没有更好的方法允许用户在Python中指定一个字符串,以某种方式映射到C中宏定义的常量
目前没有回答
相关问题 更多 >
编程相关推荐