Python3 metaclass

Question

Python3 metaclass example.

Solution

class mymeta(type):
    def __new__(cls, name, bases, dict):
        print(("Creating name:", name))
        print(("Base Classes:", bases))
        print(("Class Body:", dict))
        # create the actual class object
        return type.__new__(cls, name, bases, dict)

class Rectangle(object, metaclass=mymeta):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def perimeter(self):
        return 2*self.width + 2* self.height