markdown 【蟒蛇】装饰器的基础使用说明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 【蟒蛇】装饰器的基础使用说明相关的知识,希望对你有一定的参考价值。
## 装饰器
**装饰器的作用** <br>
装饰器是用来对装饰的函数进行功能扩充的。
那为什么不直接对函数进行更改呢?因为遵守开发原则中的开放封闭原则:对修改封闭,对扩展开放。
所以我用装饰器来完成一些功能扩展、临时bug修复等操作。
def wrapper (func):
def inner():
#装饰代码
f_ret func()
return f_ret # func的函数返回值的再次返回
return inner #返回内包函数的地址,让全局可以调用 inner函数
@wrapper #语法糖
def func():
pass
通过刚才的代码,发现了一个叫语法糖的东西。那什么是语法糖呢?<br>
**语法糖**<br>
简单理解,就是为了优化语法结构,让开发者使用的一种语法。
因为python要求美观简洁,但是在实际开发过程中,不可避免的会用到一些破坏整体代码美观性的一些语句。
语法糖不但解决了视觉感官方面,且提高了代码的可阅读行。
#关于装饰器的语法糖
@wrapper # fun = wrapper(fun) !!只能是语法糖下面紧挨着的函数,或者另一个语法糖。
def fun():
pass
<hr/>
带参语法糖
def wrapper (flag)
def wrapp (func):
def inner():
#装饰代码
flag #可以用到参数
f_ret func()
return f_ret # func的函数返回值的再次返回
return inner #返回内包函数的地址,让全局可以调用 inner函数
return wrapp
@wrapper(flag)
#当看见语法糖带参数时,需要分开来解释。
#首先要执行函数wrapper(flag) 那返回值就是 wrapp。
#这就变成了@wrapp 就和以前语法糖一样了
def fun():
pass
**装饰器批量操作中**<br>
看到了带参语法糖,好像没什么特别的。非也非也!<br>
既然带进来参数我们就可以尽情运用了,可以关闭装饰功能,可以修改装饰效果等。<br>
以上是关于markdown 【蟒蛇】装饰器的基础使用说明的主要内容,如果未能解决你的问题,请参考以下文章
基础学习之第十二天(装饰器的进阶)
python 蟒蛇装饰器使用类内部数学
python入门基础-函数装饰器的理解
Python基础装饰器的解释和用法
蟒蛇 |实例化之前的类方法装饰器
python基础--定义装饰器(内置装饰器)