Pythonで動的にクラスを作成する方法
Pythonでは、type()関数を動的に使用してクラスを作成できます。
type() 関数の 3 つの引数は次のとおりです。
- クラス名(String型)
- (タプル型)親クラスの継承クラス
- クラスのプロパティとメソッド(辞書形式)
以下は、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()関数で作成されました。最後のステップとして、そのクラスのインスタンス化とメソッドの呼び出しにより、そのクラスの作成が完了したことが確認されます。