メタクラス
インスタンスがクラスになるクラスのことです。通常のクラスがそのインスタンスの振る舞いを定義するように、メタクラスはそのインスタンスであるクラスを、そして更にそのクラスのインスタンスの振る舞いを定義します。
例えば、Pythonにおいてメタクラスは type です。type によって クラスを定義することができます。
a = type('sample_class', (s_class_1, s_class_2), {'atr_val': 'Atribute1'})
上記のように定義されたクラスは、次のようなクラス定義と等価です。
class sample_class(s_class_1, s_class_2):
atr_val = 'Atribute1'
a = sample_class