Python基础入门(四)
来源:互联网 发布:新纪元软件无法安装 编辑:程序博客网 时间:2024/04/30 03:25
函数即变量高阶函数+嵌套函数》装饰器
装饰器:
定义:本质就是函数,(装饰其他函数)就是为其他函数添加附加功能
1.不能修改被装饰函数的源代码
2.不能修改被装饰函数的调用方式
高阶函数+嵌套函数把一个函数名当做实参传给另外一个函数返回值中包含函数名(不修改函数的调用方式)
#####没有修改被装饰函数的源代码但是改变了函数调用方式def login(): print("######test1#######")def auth(func): func() print("######auth#######")c = auth(login)
#######修改被装饰函数的源代码+没有修改被装饰函数的调用方式
def login(): print("######test1#######")def auth(func): def funnew(): func() print("######auth#######") return funnewlogin = auth(login)login()####等价于:def auth(func): def funnew(): func() print("######auth#######") return funnew@auth #等价于login = auth(login)def login(): print("######test1#######")login()
#以上是借助Python的@语法,把decorator置于函数的定义处
#如果说有多个函数需要同一个@auth,有的被装饰的函数带有参数,而有的函数却没有参数?
def auth(func): def funnew(*args,**kwargs): func(*args,**kwargs) print("######auth#######") return funnew@auth #等价于login = auth(login)def login(): print("######test1#######")@authdef login1(name,age): print("######login1#######",name,age)login()login1("lili",23)
0 0
- Python基础入门(四)
- python基础入门四
- Python基础入门(四)- Print语句
- 《零基础入门学习python》学习过程(四)
- Python入门基础之高级特性(四)
- python入门(四)
- python入门(四)
- Python入门(四)
- python基础(四)
- python基础(四)
- STL入门基础(四)
- JavaScript入门基础(四)
- Bootstrap入门基础(四)
- Python入门(四,高级)
- python 入门笔记(四)
- Python入门(四):函数
- HTML5基础(四)零基础入门
- Python 基础拾遗(四)
- FastDFS+nginx+fastdfs-nginx-module服务器配置
- codeforces 669C Little Artem and Matrix
- 协议监测工具
- IIC详解,包括原理、过程,最后一步步教你实现IIC
- kettle 7.0导数据hbase1.2.7 (测试)
- Python基础入门(四)
- mybatis+spring的TODO小项目记录(三)使用log4j
- MonoDevelop运行报错cannot execute "xxx" file name has not beed set的解决办法
- ArrayCopyDemo方法
- 往数据库中插入数据,使用嵌套、集合查询
- iOS前后台切换运行周期
- Vert.x入门:Hello World!
- 算法提高 最长字符序列
- 2507 李白打酒