python 闭包和装饰器的使用

释放双眼,带上耳机,听听看~!

函数也是对象

函数本身也是一个对象 , 可以被其它的变量进行引用 , 作为对象返回

python 闭包和装饰器的使用

闭包

在函数里面再定义一个函数, 里面的函数用到外面函数的变量, 这个函数及用到的变量称为闭包

python 闭包和装饰器的使用

里层函数可以轻松访问外层函数的变量

python 闭包和装饰器的使用

当函数重名时

函数本质上也是一个对象,可以被任意指向, 如果有多处指向,后面指向的总是覆盖前面指向的

python 闭包和装饰器的使用

开放封闭原则

开放 : 对外可以扩展开发
封闭: 已实现的代码不修改

装饰器的本质

装饰器实现了开放封闭的代码原则, 原有的代码不发生修改又能增加新的功能 ,从本质上讲是将函数作为对象进行参数传递,并且作为对象进行返回

python 闭包和装饰器的使用

使用语法糖来简化代码

使用@装修函数 的语法装饰函数 , 原函数的代码 和调用不发生变化
python 闭包和装饰器的使用

多次装饰

如下, 第一次装饰时函数并不没有执行,到第二次装饰里将第一次添加的功能添加将执行,所以被装饰函数执行了一次,简化言之:第二次装饰时 inner = func

python 闭包和装饰器的使用

不定参数的装饰器

python 闭包和装饰器的使用

带有返回值的装饰器

python 闭包和装饰器的使用

装饰器带有参数

带有参数的装饰并不会直接传入原有的函数对象,而是返回一个被包裹的装饰器
python 闭包和装饰器的使用

【转自慕课】https://www.imooc.com

Python

python学习笔记,方便记住

2022-3-3 4:19:08

Python

python 装饰器:动态扩展函数的功能

2022-3-3 4:31:12

搜索