前言
python装饰是一个很好的特性,大师级的装饰会让你的编程思路更宽泛,程序更为python式。现在我们来谈谈python的装饰器。
装饰器存在两种应用场景,一种是增强装饰函数的行为,另一种是代码重用。
让我们先看一个例子并获得直观的感觉。
输出:
这并不难以理解,因为在生产环境中如果我们要给某个函数添加功能,最好不要修改该函数的源码,因为可能造成意想不到的影响,或者这个代码是一个大神写的,你根本不知从何改起,同时你也不能修改其调用方式,因为你不知道程序中有多少地方调用了此函数。
那么我们从函数和函数名说起吧。
输出:
小编推荐一个学python的学习群740年,3222年,34岁
引用>
无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!这其实和整数,数字是一样的:
明白了这一点,下面再说说高阶函数:高阶函数满足如下两个条件中的任意一个:a。可以接收函数名作为实参;b . b。返回值中可以包含函数名;
其实python标准库中的地图和过滤器等函数就是高阶函数。
自定义一个能返回函数的函数,也是高阶函数
<前> def f(左):,return 地图(lambda x, x * 5,,左) 时间=a f (l) for 小姐:答:拷贝, 打印(我) >之前
有了这些基础,我们就可以尝试实现一下类似装饰器的功能了。
装饰器的本质是函数,其参数是另一个函数(被装饰的函数)。装饰器通常会额外处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象。行为良好的装饰器可以重用,以减少代码量。
素材来源于网络:侵删
你想知道python装饰器的由来吗?