#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.上一行的装饰器,是由下一行装饰器装饰后的结果进行装饰。
如果本文对你有帮助,欢迎打赏本站