あるフリーランスエンジニアの色んなメモ!! ITスキル・ライフハックとか

Python:文字列からクラスを取得する

実装例

import importlib


def class_for_name(package_name, class_name):
    '''
    :param str package_name:
    :param str class_name:
    '''
    # packageが見つからなければ ImportError が発生
    m = importlib.import_module(package_name)

    # classが見つからなければ AttributeError が発生
    c = getattr(m, class_name)
    return c

使用例

# コンストラクタを呼び出す
instance = class_for_name('mypackage.foo', 'MyClass')(val1, val2, ...)
comments powered by Disqus