基本的にアプリの C++ API を使用していますが、その python アクセスの参照はありません。次のように、1 つの変数が ref によって渡されます。
GetPoint ( Point &p, Object obj )
どうすればPythonに翻訳できますか?パス バイ リファレンス シンボルはありますか?
基本的にアプリの C++ API を使用していますが、その python アクセスの参照はありません。次のように、1 つの変数が ref によって渡されます。
GetPoint ( Point &p, Object obj )
どうすればPythonに翻訳できますか?パス バイ リファレンス シンボルはありますか?
Python には参照記号による受け渡しはありません。
渡されたポイントを変更するだけで、変更は呼び出し元の関数から表示されます。
>>> def change(obj):
... obj.x = 10
...
>>> class Point(object): x,y = 0,0
...
>>> p = Point()
>>> p.x
0
>>> change(p)
>>> p.x
10
...
だから私はそれを次のように渡す必要があります: GetPoint (p, obj)?
はい、Iraimbilanjaには良い点があります。バインドによって、out パラメーターを使用するのではなく、ポイントを返すように呼び出しが変更された可能性があります。
Python バインディングがその署名を次のように変えた可能性があります。
Point GetPoint(Object obj)
あるいは:
Point Object::GetPoint()
そのため、バインディングのドキュメントまたはソースを調べてください。
Python は参照の値を変数に渡すと確信しています。この記事は、おそらく私よりもうまく説明できます。
Python では、オブジェクトは常に参照として渡されます。したがって、オブジェクトにラップすると、同様の効果が得られます。
Python にはシンボルによる参照はありません。正しいことは API によって異なります。自問すべき問題は、C++ から python に渡されたオブジェクトを誰が所有しているかということです。オブジェクトを python オブジェクトにコピーするのが最も簡単な場合もありますが、それが常に最善であるとは限りません。
あなたはboost.python http://www.boost.org/doc/libs/1_38_0/libs/python/doc/index.htmlに興味があるかもしれません