1 #!/usr/bin/env python 2 #encoding: utf-8 3 def start_info(): 4 print ('电视剧开头曲.......') 5 print ('开始唱歌.......') 6 def end_info(): 7 print ('电视剧结束曲.......') 8 9 def filter(start_info,end_info): #接收俩函数10 def outer(main_fun): #接收装饰的函数11 def app(*argv,**kwargs): #接收装饰的函数的参数12 print('******************************')13 start_info()14 main_fun(*argv,**kwargs)#接收装饰的函数的参数15 end_info()16 print('******************************')17 return app18 return outer19 #先把函数传进去,然后在用里面的函数装饰20 #传函数的装饰器必须有三个def ,第一个是接受函数,第二个是装饰函数的,返回第三个函数对象21 # 把需要装饰的函数重新定义,然后调用调用22 #1: filter(start_info,end_info):23 #2: @outer -> one_info = outer(one_info)24 @filter(start_info,end_info) #这里传入俩个函数25 def one_info(name,info):26 print ('this is one')27 print('wolcome to tv %s .......' % (name))28 print('wolcome to tv %s .......' % (info))29 30 @filter(start_info,end_info)31 def two_info(name,info):32 print('this is two')33 print('wolcome to tv %s .......' % (name))34 print('wolcome to tv %s .......' % (info))35 36 @filter(start_info,end_info)37 def three_info(name,info):38 print('this is three')39 print('wolcome to tv %s .......' % (name))40 print('wolcome to tv %s .......' % (info))41 42 if __name__ == "__main__":43 print('三国演义三部曲开始。。。。。。。。')44 print('第一部。。。。。。。。。。。。。。')45 one_info('三国电视剧第一部', '三国大战')46 47 print('第二部。。。。。。。。。。。。。。')48 two_info('三国电视剧第二部', '三国英雄')49 50 print('第三部。。。。。。。。。。。。。。')51 three_info('三国电视剧第三部', '三国鼎力')
1 #!/usr/bin/env python 2 #encoding: utf-8 3 def start_info(): 4 print ('电视剧开头曲.......') 5 print ('开始唱歌.......') 6 def end_info(): 7 print ('电视剧结束曲.......') 8 9 def outer(main_fun): #接收装饰的函数10 def app(*argv,**kwargs): #接收装饰的函数的参数11 print('******************************')12 start_info()13 main_fun(*argv,**kwargs)#接收装饰的函数的参数14 end_info()15 print('******************************')16 return app17 18 #1: @outer -> one_info = outer(one_info)19 @outer20 def one_info(name,info):21 print ('this is one')22 print('wolcome to tv %s .......' % (name))23 print('wolcome to tv %s .......' % (info))24 25 @outer26 def two_info(name,info):27 print('this is two')28 print('wolcome to tv %s .......' % (name))29 print('wolcome to tv %s .......' % (info))30 31 @outer32 def three_info(name,info):33 print('this is three')34 print('wolcome to tv %s .......' % (name))35 print('wolcome to tv %s .......' % (info))36 37 if __name__ == "__main__":38 print ('三国演义三部曲开始。。。。。。。。')39 print ('第一部。。。。。。。。。。。。。。')40 one_info('三国电视剧第一部','三国大战')41 42 print('第二部。。。。。。。。。。。。。。')43 two_info('三国电视剧第二部','三国英雄')44 45 print('第三部。。。。。。。。。。。。。。')46 three_info('三国电视剧第三部','三国鼎力')