次のような Pyrex 拡張タイプがあります。
cdef extern from "some_include.h":
ctypedef struct AThing:
...
Pythoninc 拡張タイプによってラップされます。
cdef class Foo:
cdef AThing c_val
def __init__(self, somestring):
self.c_val = from_string(somestring)
次のように、既存の C 値を使用して、他の場所の Pyrex コード内からこの拡張タイプのインスタンスを作成できるようにしたいと考えています。
cdef some_func(avalue):
cdef AThing val
...
val = some_func()
a_dict['foo'] = Foo()
a_dict['foo'].c_val = val
...しかし、これは「'AThing' を Python オブジェクトに変換できません」という結果になります。Python と C の両方から初期化できる Pyrex 拡張型を作成する一般的な手法は何ですか?