Python C API で という名前のPyEval_CallFunction
便利な関数を発見しました。次のように言うことで、Python callable を呼び出すことができます。
PyEval_CallFunction(obj, "OOO", a, b, c);
ただし、この関数に関する公式ドキュメントは見つかりません。Google 検索では、この機能について説明しているさまざまな非公式のチュートリアルが表示されますが、次のようになります。
この関数は公式の Python ドキュメントに記載されていないため、パブリック API の一部であると想定されているものであるかどうかはわかりません。
Web を検索すると、一貫性のない使用ポリシーが見つかります。一部のチュートリアルでは、フォーマット文字列が型リストの周りに括弧が必要であることを示していますが
"(OiiO)"
、他の場合は括弧なしで使用されています。実際のプログラムで実際に関数を試してみると、括弧が必要なようです。そうしないと、segfault が発生します。
この機能は便利なので使ってみたいです。誰かがこれについて何か知っていますか、または文書化されていない理由を知っていますか? それはパブリック API の一部ですか?