Self object inside the decorator
import random def only_registered_users(func): def wrapper(handler): print('Checking if user is logged in') if random.randint(0, 1): print('User is logged in. Calling the original function.') func(handler) else: print('User is NOT logged in. Redirecting...') return wrapper class MyHandler(object): @only_registered_users def get(self): print('Get function called') m = MyHandler() m.get()
Output
Checking if user is logged in User is logged in. Calling the original function. Get function called