Courses/Metaprogramming

๐Ÿง™ Metaprogramming

Metaclasses

Classes that create classes.

A metaclass controls how a class itself is built. type is the default metaclass for every class.

class UpperAttrs(type):
    def __new__(mcs, name, bases, attrs):
        upper = {k.upper() if not k.startswith("__") else k: v
                 for k, v in attrs.items()}
        return super().__new__(mcs, name, bases, upper)

class My(metaclass=UpperAttrs):
    hello = "world"

print(My.HELLO)  # world
main.py
Output
Press Run to execute.
Expected output
Point(x=3, y=4)

Sign in to track your progress across lessons.