for key, val in list(dct.items()):
    if hasattr(val, '__call__') and val is not decorator:
        dct[key] = decorator(val)
return type.__new__(cls, name, bases, dct)


class Test(metaclass=DecorateMeta):
    pass
decorator = decorate

def seasonal_greeting(self):
    print('Happy new year!')
Test().seasonal_greeting()
Memoizing all methods by default