from functools import wraps
def decorator_func(cls):
@wraps(cls)
def wrapper_func(*args, **kwargs):
# Do something before
result = cls(*args, **kwargs)
# Do something after
return result
return wrapper_func
@decorator_func
class MyClass:
passIn the example above, the decorator_func is a function that takes a class as an argument and returns a new class. The new class is called wrapper_func and it is the one that will be called when we call MyClass. The wrapper_func will call MyClass and return its result. The wrapper_func can also do something before and/or after calling MyClass. It basically works as an interceptor for the MyClass class.
Note: Please note that the
decorator_funcis exactly the same as the one used for Function Decorators, it has zero changes in it except for the name of the argument, which, since Python is a dynamically typed language, can be anything.