【发布时间】:2016-07-21 15:03:52
【问题描述】:
我正在尝试利用 cython 为我的 C++ 实用程序提供一个包装器。我试图使其可访问的一个这样的函数是一个访问器,它根据文件类型返回一个枚举。
这是我在 cython 中重新定义函数的方式:
cdef extern from "reader.h" namespace "magic_number":
enum mcr_magic_number_t:
MDI = 0
EOT
RV
UNKNOWN
然后在我的reader.pxd 文件中
cpdef mcr_magic_number_t magic_number(self)
然后在我的reader.pyx 文件中
cpdef mcr_magic_number_t magic_number(self):
"""
:return: the magic_number enum
:rtype: mcr_magic_number_t
"""
return self.thisptr.magic_number()
现在,当我去编译这个时,我得到一个警告
warning: ‘__pyx_r’ may be used uninitialized in this function
有人知道如何最好地解决这个问题吗?我尝试在谷歌上搜索解决方案,但我得到的只是其他人报告相同 __pyx_r 警告的页面。也许有一种方法可以设置默认值或确保它始终在 cython 中初始化?
【问题讨论】:
-
我怀疑这不是问题。但是,如果有疑问,请查看 C 以了解它未初始化的情况。不幸的是,不知道
self.thisptr是什么,其他人实际上不可能查看。