Python ProgrammingPython Programming

Python decorator get class name

def print_name(*args):
  def _print_name(fn):
    def wrapper(*args, **kwargs):
      print('{}.{}'.format(fn.__module__, fn.__qualname__))
      return fn(*args, **kwargs)
    return wrapper
  return _print_name


class A():
  @print_name()
  def a():
    print('Hi from A.a')


@print_name()
def b():
  print('Hi from b')


A.a()
b()
Output
__main__.A.a
Hi from A.a
__main__.b
Hi from b