meta class
A metaclass is a class whose instances are in turn classes. In object-oriented programming languages with metaclasses, classes are regarded as objects, so-called class objects. These class objects are then in turn instances of a class, which is called a metaclass. Since metaclasses can likewise be regarded as class objects, metaclasses and class objects cannot be clearly distinguished from one another. Through the concept of metaclasses, among other things, a dynamic manipulation of class definitions can be realized.