Pythonで動的にクラスを作成する方法

Pythonでは、type()関数を動的に使用してクラスを作成できます。

type() 関数の 3 つの引数は次のとおりです。

  1. クラス名(String型)
  2. (タプル型)親クラスの継承クラス
  3. クラスのプロパティとメソッド(辞書形式)

以下は、type() 関数を使ってクラスを動的に作成する方法を示すサンプルコードです:

# 定义类的属性和方法
attributes = {
    'name': 'DynamicClass',
    'age': 20,
    'get_name': lambda self: self.name,
    'set_name': lambda self, name: setattr(self, 'name', name),
}

# 使用 type() 函数创建类
DynamicClass = type('DynamicClass', (), attributes)

# 创建类的实例
obj = DynamicClass()

# 调用类的方法
print(obj.get_name())  # 输出: DynamicClass

# 动态修改类的属性
obj.set_name('NewClass')
print(obj.get_name())  # 输出: NewClass

このコード内では、attributes辞書がクラスの属性とメソッドを定義しています。その中で、nameは文字列型の属性であり、get_nameはname属性の値を取得するメソッドで、set_nameはname属性の値を設定するメソッドです。

そして、空の親クラス()から継承し、属性の辞書で定義されている属性とメソッドを備えたDynamicClassクラスがtype()関数で作成されました。最後のステップとして、そのクラスのインスタンス化とメソッドの呼び出しにより、そのクラスの作成が完了したことが確認されます。

bannerAds