この場合、モジュールはファイルからロードされた Python スクリプトです。これについては、インターネット上で何も見つかりません。
モジュール内のすべてのオブジェクトをループできれば、PyClass_Check を使用してクラスをフィルター処理できます。しかし、これを行う方法もわかりません。
// Load
Py_SetProgramName(argv[0]);
Py_Initialize();
PySys_SetArgv(argc, argv);
inithello();
PyObject *pModule = PyImport_ImportModule("test123");
if (pModule != NULL) {
// iterate through classes.
Py_DECREF(pModule);
} else {
PyErr_Print();
std::cerr << "Failed to load module" << std::endl;
return 1;
}
Py_Finalize();
これは、ユーザーが基本クラスから派生したクラスを使用してゲーム コンテンツを定義するためです。
class grass_tile(game.Tile):
def __init__(x, y):
// initialise
モジュールで PyObject_GetIter() を使用しようとしましたが、NULL を返します (明らかに、そのように反復することはできません)。