The call to the built-in type() class can be used as a dynamic equivalent of the class statement. The following is an example of a class definition with the type() call:
def method(self): return 1 MyClass = type('MyClass', (object,), {'method': method})
This is equivalent to the explicit definition of the class with the class keyword:
class MyClass: def method(self): return 1
Every class that's created with the class statement implicitly uses type as its metaclass. This default behavior can be changed by providing the metaclass keyword argument to the class statement, as follows:
class ClassWithAMetaclass(metaclass=type): pass
The value that's provided as a metaclass argument is usually another class object, but it can ...