装饰器总结篇(持续更新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))

原文地址:https://www.cnblogs.com/anthony-wang0228/p/10453724.html