Subscribed unsubscribe Subscribe Subscribe

Python で文字列クラス名からオブジェクトを生成

Django

○ strcls 関数

def strcls(class_name):
  return globals()[class_name]

globals()
現在のグローバルシンボルテーブルを表す辞書を返します。これは常に現在のモジュール (関数やメソッドの中では、それを呼び出したモジュールではなく、それを定義しているモジュール) の辞書です。

2. 組み込み関数 — Python 3.5.3 ドキュメント

○ 使用例

class A:
  def __init__(self, a, b):
    self.a = a
    self.b = b
  
  def func(self):
    return self.a + self.b

a = strcls("A")(2, 3)
a.func()
# 5

Pythonで動的にクラスをロードしたい件 – taichino.com

Remove all ads