# decrator of python
# definition of func
# def func() :
# print('Hello world')
# def new_func() :
# print('decrating new_func')
# func()
# print('end decrating')
# new_func()
# when other func needs decrating, we should define another new_func
# how to resolve this problem
# def add(a, b) :
# return a + b
# def sub(a, b) :
# return a - b
# def mult(a, b) :
# return a * b
def new_func(func) :
def wrapper(*args, **argvs) :
print('decrating begin')
ret = func(*args, **argvs)
print('decrating end')
return ret
return wrapper
def new_new_func(func) :
def wrapper(*args, **argvs) :
print('new decrating begin')
ret = func(*args, **argvs)
print('new decrating end')
return ret
return wrapper
@new_func
def add(a, b) :
return a + b
print(add(3, 78))
@new_new_func
@new_func
def func() :
print('Hello world')
print(func())