Python ProgrammingPython Programming

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