Overview of metaclasses
Metaclasses are classes that can be created separately with certain features that can alter the behavior of other classes or can help in dynamically manufacturing new classes. The base class of all metaclasses is the type
class and the object or instance of a metaclass will be a class. Any custom metaclass that we create will be inherited from the type
class. type
is the class of all data types in Python as well and everything else in Python 3 is an object of the type
class. We can test this statement by checking the type of different program objects in Python, as follows:
class TestForType:
pass
type(TestForType)
type
type(int)
type
type(str)
type
type(object)
type
type(float)
type
type(list)
type
In this chapter, we will look at some examples of how to use these metaclasses, how to implement them, and how to reuse them. We will continue with our ABC Megamart examples...