gpt4 book ai didi

c++ - 用 Cython 包装枚举类

转载 作者:可可西里 更新时间:2023-11-01 16:04:42 24 4
gpt4 key购买 nike

我正在尝试将枚举类包装在 C++ 头文件中,以便在 cython 项目中使用。

例如,这怎么可能

enum class Color {red, green = 20, blue};

用 Cython 包裹。

最佳答案

CPP类

enum class Color {red, green = 20, blue}; 

类型定义

cdef extern from "colors.h":
cdef cppclass Color:
pass

颜色类型的定义

cdef extern from "colors.h" namespace "Color":
cdef Color red
cdef Color green
cdef Color blue

Python 实现

cdef class PyColor:
cdef Color thisobj
def __cinit__(self, int val):
self.thisobj = <Color> val

def get_color_type(self):
cdef c = {<int>red : "red", <int> green : "green", <int> blue : "blue"}
return c[<int>self.thisobj]

关于c++ - 用 Cython 包装枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31001918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com