| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python -闲谈闭包函数与有参无参装饰器,你掌握了吗 -> 正文阅读 |
|
[Python知识库]python -闲谈闭包函数与有参无参装饰器,你掌握了吗 |
一、什么是闭包函数? 在听了Egon老师的讲解后我有了一些见解来跟xdm分享: 闭包函数=名字空间与作用域+函数嵌套+函数对象 ‘闭'函数指的该函数是内嵌函数 ‘包’函数指的该函数包含对外层函数作用域名字的引用(不是对全局作用域) 注意:内部函数包含对外部作用域而非全局作用域的引用 来为大家举个例子:
二、无参装饰器 首先大家要明白装饰器就是闭包函数的一种应用场景 那xdm知道-为何要用装饰器吗? 根据开放封闭原则:对修改封闭,对扩展开放 有时大家在做项目时,你写好了一个功能,当你想要为这个功能添加或修改一些功能时,如果不用装饰器,你可能要在原来的功能代码上进行修改,要是每次都要在原来的代码上进行修改,大家会不会觉得太累了呢?特别是你要在别人写的功能代码上进行修改时。而装饰器遵循的开放封闭原则很好的避免了这个问题。 什么是装饰器? 装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象。 强调装饰器的原则: 1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式 装饰器的目标:在遵循1和2的前提下,为被装饰对象添加上新功能 首先我来跟大家列下无参装饰器的模板:
下面我们来用无参装饰器的模板来进行一个小的案例:
这就是套用的无参装饰器的模板,但大家想必也很疑惑和好奇,它的原理是什么,下面我将不用装饰器,来实现上面一样的功能和输出结果
想必大家应该也明白了其中的原理,有参的装饰器运行的原理也和上面的无参装饰器的原理差不多。当有多个装饰器装饰一个函数时,从最下面的装饰器开始调用
三、有参装饰器
原理无非和无参装饰器一样,就不为大家详细介绍啦,有兴趣的兄弟可以课下自己套用模板试一下,不会的可以私信我欧,希望大家喜欢,一起进步!要是喜欢的话欢迎大家来关注我欧~有不足的地方欢迎大家指出,会继续为xdm更新的 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 0:46:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |