关于公司建设网站的意义,抖音代运营多少钱一个月,六安住房和城乡建设部网站,it企业网站模板python函数-装饰器 1.装饰器的原则--开放封闭原则 开放#xff1a;对于添加新功能是开放的 封闭#xff1a;对于修改原功能是封闭的 2.装饰器的作用 在不更改原函数调用方式的前提下对原函数添加新功能 3.装饰器的本质--闭包 4.装饰器 #xff08;1#xff09;简单的装饰器…python函数-装饰器 1.装饰器的原则--开放封闭原则 开放对于添加新功能是开放的 封闭对于修改原功能是封闭的 2.装饰器的作用 在不更改原函数调用方式的前提下对原函数添加新功能 3.装饰器的本质--闭包 4.装饰器 1简单的装饰器 def deco(f):def wrapper():原函数前添加的功能f()原函数后添加的功能return wrapperdef func():print(这是原函数)func deco(func)
func()2装饰器的语法糖-----deco def deco(f):def wrapper():原函数前添加的功能f()原函数后添加的功能return wrapperdeco # ——此处效果等同于 func deco(func)
def func():print(这是原函数)func()3带返回值的装饰器 def deco(f):def wrapper():原函数前添加的功能res f()原函数后添加的功能return resreturn wrapperdeco
def func():print(这是原函数)
func()4装饰器加参数的固定格式 def deco(f):def wrapper(*args,**kwargs):原函数前添加的功能res f(*args,**kwargs)原函数后添加的功能return resreturn wrapperdeco
def func(*args,**kwargs):print(这是原函数)
func()5装饰器的固定格式--wraps版 from functools import wrapsdef wrapper(func):wraps(func)def inner(*args,**kwargs):print(在被装饰的函数执行之前做的事)ret func(*args,**kwargs)print(在被装饰的函数执行之后做的事)return retreturn inner
wrapper
def holiday(day):print(新年快乐)return 好开心
print(holiday.__name__)
print(holiday.__doc__)
ret holiday(3)
print(ret)
holiday
None
在被装饰的函数执行之前做的事
新年快乐
在被装饰的函数执行之后做的事
好开心6 多个装饰器装饰一个函数 def wrapper1(func):def inner1():print(wrapper1 ,before func)func()print(wrapper1 ,after func)return inner1def wrapper2(func):def inner2():print(wrapper2 ,before func)func()print(wrapper2 ,after func)return inner2wrapper2 # 将inner1进行装饰即inner1 wrapper2(inner1) inner2
wrapper1 # 先执行这个装饰器即f wrapper1(f) inner1
def f():print(in f)f()
wrapper2 ,before func
wrapper1 ,before func
in f
wrapper1 ,after func
wrapper2 ,after func转载于:https://www.cnblogs.com/a438842265/p/8467705.html