2011-07-02 8 views
2

c-apiから、Python関数を名前で呼びたいと思います。私は引数としてPythonオブジェクトのリストを持つ関数を呼び出しています。C-APIから名前でPython関数を呼び出す方法は?

Pythonのマニュアルでは、メインのPythonインタプリタから "Callable"オブジェクトを取得する方法がわかりません。

に感謝すべてのヘルプ:

  1. は、引数としての私のPythonObjectの持つ機能を呼び出す機能
  2. からアドレスを取得します。

私の開発にはPython 2.xシリーズを使用しています。

+0

関連:http://stackoverflow.com/questions/4342560/python-c-api-call-a-python-function-with-arguments-passed-by-reference –

答えて

3

基本的に、Python C APIを使用して、関数が含まれているモジュールを取得してから、関数のモジュール辞書を照会します。これは、Pythonコードがどこかの関数を呼び出すときに、Pythonランタイムが内部的に行うことと多かれ少なかれ同じです。

見るべきAPIからの関連する機能は、PyImport_ImportModule,PyModule_GetDict,PyDict_GetItemおよびPyObject_CallXXXの機能ファミリーである。

+0

あなたの迅速な対応に感謝します。メインモジュールはどのように入手できますか? – Juan

+0

__main__のように見える – Juan

+0

彼は '__main__'を意味します – bukzor

関連する問題