Curriculum
In Python, a metaclass is a class that defines the behavior of other classes. It is used to customize the behavior of the type
class, which is responsible for creating and managing other classes.
A metaclass can be used to add new functionality to classes, such as adding new methods or attributes, or changing the way that instances of a class are created.
Here’s an example of how a metaclass can be used to customize the behavior of a class:
class Meta(type): def __new__(cls, name, bases, dct): dct['speak'] = lambda self: print("Hello, my name is", self.name) return super().__new__(cls, name, bases, dct) class Person(metaclass=Meta): pass person = Person() person.name = "Alice" person.speak()
In this example, we define a metaclass Meta
that adds a speak
method to any class that uses it as a metaclass. The __new__
method of the metaclass is called when a new class is created, and it adds a speak
method to the class.
We then define a new class Person
and specify Meta
as its metaclass. This means that the Meta
class will be used to create and manage the Person
class.
We create an instance of the Person
class, set the name
attribute, and call the speak
method. The speak
method was added to the Person
class by the Meta
metaclass.
The output of the above code will be:
Hello, my name is Alice
As you can see, we were able to customize the behavior of the Person
class using a metaclass. The Meta
metaclass added a new method to the Person
class, which we were able to use to print a message to the console.