Pythonダイナミックインポートオブジェクト

666 ワード

背景
1つの関数の実行には、異なるプロジェクトの構成に基づいて、対応するプロファイルを動的にインポートして実行する必要があります.解決する
  • ファイル構造
  • a #   
        │a.py
        │__init__.py
    b #   
        │b.py
        │__init__.py
        ├─c#   
            │c.py
            │__init__.py
    
    # c.py    
    args = {'a':1}
    
    class C:
        
        def c(self):
            pass
    

    目的
    c.pyのオブジェクトをaモジュールにインポート
    ソリューション
    a.py
    
    import importlib
    
    params = importlib.import_module('b.c.c') #    
    params_ = importlib.import_module('.c.c',package='b') #    
    
    #           
    params.args #    
    params.C  #  class C
    params.C.c  #  class C   c   
    

    以上が動的関数import_moduleの使い方
    このブログを剽窃する