20220323-day12:装饰器详解

import functools
print("第一回合".center(30,"*"))

def func():
print("我是func函数")
value = (11,22,33,44)
return value

def outer(origin):
def inner():
print("before")
res = origin()
print("after")
return res
return inner

func = outer(func)

result = func()
print(result)

print("第二回合".center(30,"*"))

#
# python内部会自动执行函数名(XXX),执行完毕之后,再讲结果赋值给xxx
# xxx = 函数名(xxx)

def outer(origin):
def inner():
print("before")
res = origin()
print("after")
return res
return inner

@outer # func = outer(func)
def func():
print("我是func函数")
value = (11,22,33,44)
return value
result = func()
print(result)

print("第三回合".center(30,"*"))
def outer(origin):
@functools.wraps(origin)
def inner(*args,**kwargs):
print("before")
res = origin(*args,**kwargs)
print("after")
return res
return inner

@outer # func = outer(func)
def func1(a1):
print("我是func1函数")
value = (11,22,33,44)
return value

@outer # func = outer(func)
def func2(a1,a2):
print("我是func2函数")
value = (11,22,33,44)
return value

@outer # func = outer(func)
def func3(a1):
print("我是func3函数")
value = (11,22,33,44)
return value

func1(1)
func2(11,22)
func1(999)
posted @ 2022-03-23 22:04  美丽小鱼  阅读(88)  评论(0)    收藏  举报