Cffi:避免重复声明

时间:2018-01-05 14:25:24

标签: python python-3.x python-cffi

我开始在一个大项目中使用cffi,导入很多文件。 当我使用结构时,我有很多这样的结构声明:

ffi.cdef("""
typedef struct sMyStruct
  {
    int32_t  nbData;
    int32_t  nbMaxData;
  } tMyStruct;
""")

由于我有多个相互依赖,多次导入,我有时间:

cffi.error.CDefError: <cdef source string>:6: duplicate declaration of struct sMyStruct

我正在寻找一些好的实践来避免这种情况。

设置一个干净的相互依赖,在正确的地方只设置必要的导入对我的情况不是一个现实的解决方案。

我的第一个想法是:

try:
  ffi.cdef("""
  typedef struct sMyStruct
  {
    int32_t  nbData;
    int32_t  nbMaxData;
  } tMyStruct;
  """)
except cffi.error.CDefError as e:
        if e.args[0].startswith("duplicate declaration"):
            pass
        else:
            raise e
except:
        raise

是的,但我认为我们可以做得更好。

什么是更好的建议?

0 个答案:

没有答案