装饰器总结篇(持续更新ing)
固定格式
def wrapper(func):
def inner(*args, **kwargs):
#执行函数前进行的操作
ret = func(*args,**kwargs)
#执行函数后进行的操作
return ret
return inner
@wrapper
def f():
print(666)
f()
# def foo(func):
# print('foo')
# func()
#
# def bar():
# print('bar')
#
# foo(bar)
# foo
# bar
# def foo():
# print('foo')
#
# return bar
#
#
# def bar():
# print('bar')
#
# b = foo()
# b()
# 注意:这里说的函数都是指函数名,比如foo;而foo()表示已经执行函数了,
# foo()是什么类型取决于return的内容是什么类型!!!
# foo
# bar
import time
def show_time(func):
def inner(a,b):
start_time = time.time()
ret=func(a,b)
end_time = time.time()
print('spend %s' % (end_time - start_time))
return ret
return inner
@show_time
def add(a,b):
time.sleep(1)
# print(a+b)
return a+b
# add=show_time(add)
print(add(2,5))