Skip to content

Instantly share code, notes, and snippets.

@takashyx
Last active February 20, 2019 02:39
Show Gist options
  • Save takashyx/4d9c13e50e102953001d741e06cebca1 to your computer and use it in GitHub Desktop.
Save takashyx/4d9c13e50e102953001d741e06cebca1 to your computer and use it in GitHub Desktop.
decorator to print [filename]:[linenumber] [funcname] start / done
# -*- coding: utf-8 -*-
import functools
import inspect
def print_startdone(f):
@functools.wraps(f)
def wrapper(*args, **kwargs):
filename = inspect.currentframe().f_back.f_code.co_filename
lineno = inspect.currentframe().f_back.f_lineno
funcname = f.__name__
print()
print('========================================')
print(f'{filename}:{lineno} function {funcname} start...')
print('----------------------------------------')
ret = f(*args, **kwargs)
print('----------------------------------------')
print(f'{filename}:{lineno} function {funcname} done.')
print('========================================')
print()
return ret
return wrapper
========================================
test.py:11 function myfunc start...
----------------------------------------
myfunc
----------------------------------------
test.py:11 function myfunc done.
========================================
# -*- coding: utf-8 -*-
from decorator import *
@print_startdone
def myfunc():
print('myfunc')
myfunc()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment