在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
装饰器是什么?为什么要学习装饰器?装饰器用于拓展原来函数功能的一种函数,在不改变原函数名或类名的情况下给函数增加新的功能。给已有函数增加额外功能的函数,它本质上就是一个闭包函数,我们学习得主要目的是掌握装饰器的语法格式。
1、装饰器是什么?
给已有函数增加额外功能的函数,它本质上就是一个闭包函数。
装饰器的功能特点:不修改已有函数的源代码;不修改已有函数的调用方式;给已有函数增加额外的功能。
2、装饰器的示例代码

代码说明:闭包函数有且只有一个参数,必须是函数类型,这样定义的函数才是装饰器。
写代码要遵循开放封闭原则,它规定已经实现的功能代码不允许被修改,但可以被扩展。
执行结果:

3、装饰器语法糖写法
如果有多个函数都需要添加登录验证的功能,每次都需要编写func = check(func)这样代码对已有函数进行装饰,这种做法还是比较麻烦。Python给提供了一个装饰函数更加简单的写法,那就是语法糖,语法糖的书写格式是: @装饰器名字,通过语法糖的方式也可以完成对已有函数的装饰。
说明:@check 等价于 comment = check(comment)装饰器的执行时间是加载模块时立即执行。
执行结果:

4、装饰器总结
装饰器本质上就是一个闭包函数,可以对已有函数进行额外的功能扩展。装饰器的语法格式:

装饰器的语法糖用法: @装饰器名称,同样可以完成对已有函数的装饰操作。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
掌握python开发技术python学习多久
掌握python开发技术python学习多久?python培训班的学习周期一般是4-6个月,不同机构不同基础的学员学习周期可能略有所不同。学习好python开发并不是一件简单的事情,毕竟关乎到就业,如果没有就业指导这方面服务,会遇到各种各样的问题。
9111
2019-04-11 15:09:06
学人工智能一定要先学Python吗?为什么?
学人工智能一定要学Python吗?不一定,如果大家会C/C++也可以不学Python,但是使用Python的脚本语言更加简单,所以为什么不使用更加轻松的编程语言呢?而且Python也是科学计算和数据分析的重要工具,学人工智能先学Python,也可以方便初学者。博学谷为此专门开设了Python+人工智能在线就业班课程,有兴趣学习人工智能的同学可以了解一下该课程。
8996
2019-08-21 14:41:48
Python lambda表达式学习总结
lambda表达式是⼀⾏函数,它们在其他语⾔中也被看做是没有具体名称的匿名函数。lambda表达式非常有用,它可以让代码更加简洁。如果你不想在程序中对⼀个函数使⽤两次,或许你会想⽤lambda表达式,它们和普通的函数完全⼀样。下面我们一起来看看lambda表达式的原型、代码案例、列表排序、列表并⾏排序以及lambda表达式的优劣吧!
6857
2020-06-30 12:03:41
命令行客户端MySQL如何使用?
命令行客户端MySQL如何使用?代码怎么写?学习命令行客户端MySQL需要掌握使用命令行连接数据库命令,写出增、删、改、查的SQL语句。
5725
2022-01-11 14:15:01
连接查询左连接的SQL语句怎么写?
连接查询左连接的SQL语句怎么写?左连接查询以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在使用null值填充,作为程序要能写出左连接查询的SQL语句。
22392
2022-01-18 13:54:50
