7
Pythonクラスを.pyxファイル内のエクステンションタイプに変換しました。他のCythonモジュールでこのオブジェクトを作成することはできますが、はstatic typingを実行できませんここで静的な型指定のためにCythonでエクステンションタイプを共有する
は私のクラスの一部です:
cdef class PatternTree:
cdef public PatternTree previous
cdef public PatternTree next
cdef public PatternTree parent
cdef public list children
cdef public int type
cdef public unicode name
cdef public dict attributes
cdef public list categories
cdef public unicode output
def __init__(self, name, parent=None, nodeType=XML):
# Some code
cpdef int isExpressions(self):
# Some code
cpdef MatchResult isMatch(self, PatternTree other):
# Some code
# More functions...
私はそれを宣言する.pxdファイルを使用して試してみましたが、それは「C法[いくつかの機能]を宣言したが定義されていません」のすべてに言います私の機能。私はまた、拡張クラスのように動作させるために私の実装の機能でCのものを取り除こうとしましたが、それもうまくいきませんでした。それが立つよう
は、ここに私の.pxdです:あなたの助けのための
cdef class PatternTree:
cdef public PatternTree previous
cdef public PatternTree next
cdef public PatternTree parent
cdef public list children
cdef public int type
cdef public unicode name
cdef public dict attributes
cdef public list categories
cdef public unicode output
# Functions
cpdef int isExpressions(self)
cpdef MatchResult isMatch(self, PatternTree other)
ありがとう!
メモプロジェクトディレクトリがより複雑な場合は、各フォルダに__init__.pyを必ず入れてください。そうしないと、いくつかの属性が存在しないというエラーが表示されます。 – emschorsch