1

何かが足りないかもしれませんが、ここに問題があります。

C拡張機能でPythonコードをトレースしていて、トレース関数がPyFrameObject*フレームを取得しました。ここで、Pythonコード(CythonによってCに埋め込まれるか変換される)でフレームを処理したいのですが、PyObject*を処理します。

PyFrameObject*をPyObject*に変換するにはどうすればよいですか?frameobject.hに適切な変換機能が見つかりません。

ありがとう。

4

1 に答える 1

2

キャストを使用します。

PyObject *myObject = (PyObject *)myFrameObject

これは Python C API の標準です。「継承」するものはすべてPyObjectPyObject_VAR_HEADオブジェクトの先頭に があるため、オブジェクトへのポインターは へのポインターに変換できますPyObject

于 2012-06-18T13:02:16.013 に答える