First page Back Continue Last page Overview Graphics

„Little Meta“

class LittleMeta(type):

def __new__(cls, clsname, superclasses, attributedict):

print("clsname: ", clsname)

print("superclasses: ", superclasses)

print("attributedict: ", attributedict)

return type.__new__(cls, clsname, superclasses, attributedict)

class S:

pass

class A(S, metaclass=LittleMeta):

pass

a = A()

Output:

clsname: A

superclasses: (<class '__main__.S'>,)

attributedict: {'__qualname__': 'A', '__module__': '__main__'}

We can see LittleMeta.__new__ has been called and not type.__new__.