#1.定义两个装饰函数,分别给字体进行加粗和倾斜的标签。
def makeBold(fn):
print("BBBBB"*5)
def wrapped1(): #注意为了演示结果这里讲wrapped函数,分为wrapped1,wrapped2
print("bbbbb"*5)
return "<b>" + fn() + "</b>"
return wrapped1
def makeItalic(fn):
print("IIIII"*5)
def wrapped2(): #注意为了演示结果这里讲wrapped函数,分为wrapped1,wrapped2
print("iiiiii" *3)
return "<i>" + fn() + "</i>"
return wrapped2
#2.使用两个装饰器同时装饰一个函数,可以三个,甚至多个。原理一样
@makeBold #注意2.其效果等同于test_B_I=makeBold( makeItalic(test_B_I) )
@makeItalic #注意1.其效果等同于test_B_I=makeItalic(test_B_I)
def test_B_I():
print("test_B_I"*5)
return "this is the test_B_I"关于多个装饰器修饰一个函数总结要点:
1.当一个函数被多个装饰器装饰时,装饰器的加载顺序是从下往上的(从内到外的)。其实很好理解:装饰器是给函数装饰的,所以要从靠近函数的装饰器开始从下往上加载
2.上一行的装饰器,是由下一行装饰器装饰后的结果进行装饰。
如果本文对你有帮助,欢迎打赏本站

支付宝扫码打赏
微信扫码打赏
