博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
装饰器的应用-装饰器带参数和不带参数
阅读量:6292 次
发布时间:2019-06-22

本文共 2893 字,大约阅读时间需要 9 分钟。

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('三国电视剧第三部','三国鼎力')

 

转载于:https://www.cnblogs.com/liuyoushui/p/6013096.html

你可能感兴趣的文章
0314考试总结
查看>>
Jquery 文字模拟输入效果
查看>>
linux 下 `dirname $0`
查看>>
代理模式(C++)
查看>>
vim自动补全快捷键
查看>>
Android Service AIDL
查看>>
PHP的工作原理和生命周期
查看>>
jQuery - 左右拖动分隔条
查看>>
注入 - Ring3 APC注入
查看>>
NFS PRC端口映射器
查看>>
关于JAVA匿名内部类,回调,事件模式的一点讨论
查看>>
Windows 术语表(Windows Glossary)
查看>>
TOJ 4689: Sawtooth
查看>>
你会开会吗
查看>>
关于FAST比较全的博文
查看>>
SCVMM 安装
查看>>
iOSBlock和delegate的用法
查看>>
4.Azure创建点到站点的***隧道(下)
查看>>
怎样为用户写“招标书”
查看>>
python运维之轻松模拟开发FTP软件05
查看>>