从0基础学Python:装饰器及练习(基础)
装饰器概念
装饰器,说白了,就是用来装饰函数的一个函数。
装饰器遵循 开放封闭原则
、依赖倒置原则
,这两个原则概念,自行百度下,
装饰器长啥样
def wrapper(f): def inner(*args,**kwargs): ret = f(*args,**kwargs)return retreturn inner
上述代码是装饰器的固定格式
调用装饰器
@wrapper # 简称语法糖
def test():print(1)
test()
@wrapper
是调用装饰器,相比于wrapper(test())
,更节省代码,更美观。可能你看到这里就不懂了,为啥要@wrapper
? 调用函数不是wrapper()
?
其实吧,你要我说,我也不知道,我就知道,这样写更简单。直接在要装饰的函数前@wrapper
即可
以一个小例子快速看懂装饰器
def wrapper(f):print(2)def inner(*args,**kwargs):print(3)ret = f(*args,**kwargs)print(4)return retreturn inner@wrapper
def test():print(1)
test()
@wrapper
== wrapper(test())
相当于调用装饰器函数,直接用语法糖@wrapper
会更简便
*args
是匹配以位置传参的参数,**kwargs
是匹配按关键字传参的参数,这样就可以接收所有参数。
wrapper(test)
接收值传给f
,在内圈函数中,ret = f(*args,**kwargs)
这函数是执行装饰的函数的代码。再返回执行的值,最后返回这个函数。此代码的执行结果为:
2
3
1
4
如下图所示
由此可见
函数inner
中,print(3)
是执行装饰函数前的操作, print(4)
是执行装饰函数后的操作。
理解起来可能有些困难。所以最好还是动手试试。
基础小练习
'''1. 默写装饰器固定格式2. 写一个加减功能的装饰器
'''
本文首发于python黑洞网,csdn同步跟新
从0基础学Python:装饰器及练习(基础)相关推荐
- 0基础学python看什么书-零基础学python编程需要看什么书?
原标题:零基础学python编程需要看什么书? 随着互联网迅速发展,python也呈现出水涨船高的态势.近年来,python在编程语言中一直名列前茅.编程初学者纷纷选择Python作为第一语言.Pyt ...
- 零基础学python全彩版答案-零基础学Python(全彩版)
商品描述: 本店出售的图书均是正版二手书,有一些笔记划线,基本是六-九品新左右,基本都没有光盘.介意者请提前咨询客服.本店所有书籍,因买家导致退货退款的,发出运费参照不包邮运费模板由买家承担.如果签收 ...
- 编程没基础学python多长时间-零基础学Python的过程有多难?需要多久?
Python是一门简单高效,应用范围广泛的计算机语言.先我们要知道Python已经算是一门相对其他编程语言而言,最适合零基础新手学习的开发语言,换句话说,如果连Python都学不进去就不要考虑进入IT ...
- 零基础学python看什么书-零基础学python推荐几本python学习的书籍
原标题:零基础学python推荐几本python学习的书籍 无论是否已经学习了一些其他的编程语言,在开始学习Python时,都应该先从Python的基本概念学起,这样在之后的编程实战中就能尽量减少因为 ...
- 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间
求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...
- 零基础学python图文版-杭州零基础学python图文版
杭州零基础学python图文版 来源:教育联展网 编辑:佚名 发布时间:2018-09-19 学习python有什么用? 如果你想学Python,或者你刚开始学习Python,那么你可能会问:&quo ...
- 零基础学python大概要多久-零基础学Python要多久
随着Python就业的逐渐火热,我们会看见很多转行零基础学Python编程开发拿上万月薪的新闻,这让很多IT专业甚至非IT专业的同学蠢蠢欲动,想自己也去尝试一下.但是在转行学习Python之前,同学们 ...
- 零基础学python还是c语言-零基础学Python之前需要学c语言吗
Python本身是比较适合作为入门编程语言来学习的,一方面Python的语法结构比较简单清晰,实验也相对比较容易完成,这会逐渐增强初学者的学习信心,另一方面Python属于全场景编程语言,未来在很多领 ...
- 零基础学python大概要多久-零基础学python大概要多久
Python是目前公认的全球5大流行语言之一,从云计算.大数据到人工智能,Python无处不在,同时Python被誉为神奇的"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使 ...
- 有c语言基础学python容易吗_零基础学Python之前需要学c语言吗
Python本身是比较适合作为入门编程语言来学习的,一方面Python的语法结构比较简单清晰,实验也相对比较容易完成,这会逐渐增强初学者的学习信心,另一方面Python属于全场景编程语言,未来在很多领 ...
最新文章
- LUA脚本调用C场景,使用C API访问脚本构造的表
- 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】
- angular 构建可以动态挂载的配置服务
- windows下手动安装pyinstaller(python2.7)
- 32怎么通过一个按键实现不同工作模式_stm32几种低功耗模式的实现和差别
- 腾讯视频 android 2倍,腾讯视频多倍速播放产品设计小结
- 建议1 区分4中零值
- python 连接 mysql
- MySQL二进制日志(binlog)总结
- 英伟达实时 3D 设计协作和仿真平台已正式发布
- 2020年下半年软件设计师下午真题及答案解析
- 【Unity gradle打android包网络连接超时错误 connec xxx ttime out】
- Input length must be multiple of 8 when decrypting with padded cipher
- 带你玩转区块链--区块链面试问题及答案-第四章【总结篇】
- 【7gyy】支招:自检性能搞定网速慢电脑卡的问题
- Mysql 中的事物
- 软件测试实例-如何测试一个杯子
- Linux系统下安装Adobe Flash Player插件观播放视频
- 利用Pytorch中深度学习网络进行多分类预测(multi-class classification)
- git检出新分支遇到的文件路径过长Filename too long的问题