The general syntax

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 ...

Get Expert Python Programming - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.