私は有用と思われるPyEval_CallFunction
というPython C APIの関数を発見しました。Python C API:PyEval_CallFunction?
PyEval_CallFunction(obj, "OOO", a, b, c);
しかし、私はこの機能上の任意の公式ドキュメントを見つけることができません:それはあなたのような何かを言って呼び出し可能なPythonのを呼び出すことができます。 Google検索では、この機能を議論し、様々なunofficial tutorialsが表示されます、しかし:公式 のPythonドキュメントで
機能isn't documented、それはの一部でさえ になっている何か だ場合、私は知りませんパブリックAPI
ウェブを検索すると、一致しない使用ポリシーである が表示されます。一部の チュートリアルでは、
"(OiiO)"
のように、 フォーマット文字列には括弧 が必要ですが、それ以外の時間は括弧なしで使用されます。 実際に実際のプログラムを で試してみると、 のかっこが必要です。それ以外の場合は segfaultsです。
私はこの機能を使いたいと思っています。誰でもこれについて何か知っているのですか、それともなぜそれを知っていますかisn't documented?公開APIの一部ですか?
Martinのメッセージの文脈では、「公開」とは、最初に廃止予定プロセスを経ることなく変更または削除しないAPIを指します。これは、文書化された代替が利用可能な場合は、文書化されていないAPIを呼び出すことをお勧めします。 'PyEval_CallFunction'の場合、文書化された(そして好ましい)APIは' PyObject_CallFunction'であり、これは 'PyEval_CallFunction'が既に呼び出しコードによって処理されていると仮定する追加のステップを含みます。 – ncoghlan