Python 3では、次のようなものが機能しました。
def aFunctionImportingAndCallingAnotherFunction(functionName, args):
packageString = "a_nested_package.to_be_imported.at_run_time"
_temp = __import__(packageString, globals(), locals(), [functionName], 0)
function = eval("_temp." + functionName)
return function(args)
Python 2.7 では、渡した関数がfunctionName存在しないというエラーが表示されます。
この例では、パッケージa_nested_packageは にsys.pathあり、パッケージto_be_importedにはパッケージがあり、パッケージにはパッケージがありますat_run_time。すべてのパッケージには__init__.pyファイルがあります。
私は試した:
- レベル引数で遊んでいます(-1と1を試しました)
a_nested_packageからの削除packageString- から削除
a_nested_packageしpackageStringて置き換える.
また、これが関数の実行時インポートを行うための完全に間違ったアプローチである場合は、私に知らせてください! 私はPythonにかなり慣れていません(C ++、PHP、およびJavaから来ました)