1
私はC++ユーティリティのラッパーを提供するためにcythonを利用しようとしています。私がアクセス可能にしようとしている関数の1つは、ファイルタイプに基づいて列挙型を返すアクセサです。その後、私のreader.pxd
ファイルで、私はCython __pyx_rはこの関数で初期化されていない場合があります
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()
を持って
cdef extern from "reader.h" namespace "magic_number":
enum mcr_magic_number_t:
MDI = 0
EOT
RV
UNKNOWN
と:ここ
どうcythonで再定義する機能です
これをコンパイルすると、警告が表示されます
warning: ‘__pyx_r’ may be used uninitialized in this function
誰もがこの問題を回避する最善の方法を知っていますか?私はgoogleで解決策を探してみましたが、同じ__pyx_r警告を報告している他の人のページがありました。おそらく、デフォルト値を設定する方法や、cython内で常に初期化されることを確認する方法がありますか?
私はそれが非問題だと思います。しかし、疑問がある場合は、どのような状況で初期化されていないかを見るためにCを見てください。残念ながら、 'self.thisptr'が何であるか分からずに、他の誰かが一見見ることができません。 – DavidW